Accéder au contenu principal

Types de règles

Les types de règles fournies sont divisées en deux groupes : les types de règles simples et les types de règles avancées.
  • Les types de règles simples sont : Enumeration, Format et Combination. Les règles de ce type se composent de certains symboles ANTLR donnés.
  • Les types de règles avancées sont : Regex, Index et Shape. Les règles de ce type correspondent aux données segmentées et standardisent ces données si nécessaire.

Les règles de type avancé sont toujours exécutées après les règles spécifiques ANTLR. Pour plus d'informations sur les règles de base et avancées, consultez Différents types de règles pour différents niveaux de parsing et Utilisation de deux niveaux de parsing pour extraire des informations de données non structurées.

Pour créer les règles de tout type, Talend fournit les éléments suivants prédéfinis et sensibles à la casse (éléments ANTLR) pour définir la composition d'une chaîne de caractères à mettre en correspondance :
  • INT : entier ;
  • WORD : mot ;
  • WORD+ : groupe de plusieurs mots ;
  • CAPWORD : mots en majuscules ;
  • DECIMAL : float décimal ;
  • FRACTION : float fraction ;
  • CURRENCY : devises ;
  • ROMAN_NUMERAL : chiffres romains ;
  • ALPHANUM : nombres alphanumériques (combinaison de caractères alphabétiques et numériques) ;
  • WHITESPACE : espace ;
  • UNDEFINED : chaînes de caractères non attendues, comme les codes ASCII qui ne sont reconnus par aucun autre élément.

Les trois tableaux suivants présentent successivement les informations détaillées concernant les types de règles simples, les types de règles avancées et les symboles ANTLR utilisés par les types de règles simples. Ces trois tableaux vous aident à compléter le tableau Conversion rules dans l'onglet Basic settings de ce composant.

Pour les types de règles simples :

Type de règle simple Utilisation Exemple

Conditions de composition de règles

Enumeration Une règle de ce type fournit une liste de correspondances facultatives. RuleName : LengthUnit

RuleValue :" 'inch' | 'cm' "

Chaque option doit être écrite entre une paire de guillemets simples, sauf si cette option est un élément prédéfini.

Les options définies doivent être séparées par le symbole |.

Format

(Le nom de la règle commence par une majuscule.)

Une règle de ce type utilise les éléments prédéfinis, avec les règles personnalisées Enumeration, Format ou Combination afin de définir la composition d'une chaîne de caractères.

RuleName : Length

RuleValue : "DECIMAL WHITESPACE LengthUnit"

Cette règle signifie qu'un espace entre les décimaux et les unités de longueur est requis. Il correspond donc à des chaînes de caractères telles que 1.4 cm, mais ne correspond pas à une chaîne de caractères comme 1.4cm. Pour que ces deux exemples correspondent, vous devez définir cette règle comme, par exemple, suit : "DECIMAL WHITESPACE* LengthUnit".

LengthUnit est une règle de type Enumeration qui définit " 'inch' | 'cm' ".

Lorsque le nom d'une règle Format commence par une majuscule, cette règle nécessite un résultat de correspondance parfaite. Cela signifie que vous devez définir exactement tout élément simple d'une chaîne de caractères, même un espace.
Format (Le nom de la règle commence par une minuscule) Une règle de ce type est presque identique à une règle Format, dont le nom commence par une majuscule. La différence est qu'une règle Format avec une minuscule en début de mot ne requiert pas de correspondance exacte. RuleName : length

RuleValue : "DECIMAL LengthUnit"

Cette règle correspond aux chaînes telles que 1.4 cm ou 1.4cm, etc. où Decimal est un des types d'éléments pré-définis et où LengthUnit est une règle Enumeration définissant " 'inch' | 'cm' ".

N/A
Combination Une règle de ce type est utilisée lorsque vous devez créer plus règles du même nom. RuleName : Size (ou size)

RuleValue : "length BY length"

La règle fait correspondre des chaînes de caractères telles que 1.4 cm by 1.4 cm, où length est une règle de type Format (commençant par une minuscule) et où BY est une règle de type Enumeration qui définit " 'By' | 'by' | 'x' | 'X' ".

Le texte ou les caractères littéraux ne sont pas acceptés comme faisant partie de la valeur de la règle. Lorsque des textes ou caractères littéraux sont nécessaires, vous devez créer une règle Enumeration pour définir ces textes ou ces caractères et utiliser ensuite cette règle Enumeration à la place de la première.

Lorsque plusieurs règles Combination utilisent le même nom, elles sont exécutées en ordre décroissant dans la table Conversion rules de la vue Basic settings du tStandardizeRow. Il est donc conseillé de les classer correctement afin d'obtenir un résultat optimal. Pour un exemple, consultez le scénario suivant :

Note InformationsAvertissement : Tous les caractères ou chaînes de caractères littéraux, s'ils ont acceptés par le type de la règle, doivent être placés entre guillemets simples. Autrement, ils seront traités comme des symboles grammaticaux ou des variables ANTLR et généreront des erreurs ou des résultats non souhaités lors de l'exécution.

Pour les types de règles avancées :

Type de règle avancée Utilisation Exemple Avertissement
Regex Une règle de ce type utilise des expressions régulières pour mettre en correspondance les données entrantes segmentées par ANTLR. RuleName : ZipCode

RuleValue : "\\d{5}"

Cette règle correspond aux chaînes de caractères telles que "92150".

Les expressions régulières doivent être compatibles avec Java.
Index Une règle de ce type utilise un index de synonymes comme référence pour rechercher les données entrantes mises en correspondance.

Pour plus d'informations concernant les index de synonymes disponibles, consultez Vue d'ensemble des index disponibles.

Un scénario est disponible dans Standardisation d'adresses provenant de données non structurées. Sous Windows, les barres obliques inverses \ doivent être remplacées par des barres obliques / si le chemin d'accès est copié à partir du fichier système.

Si vous exécutez le Job avec le mode Spark Local ou si vous exécutez le Job localement, le chemin vers le dossier index doit commencer par file:///. Si l'index est stocké dans HDFS, le chemin vers le dossier de l'index doit commencer par hdfs://.

Lorsque vous traitez un enregistrement, une règle Index met en correspondance la première chaîne de caractères identifiée comme correspondante.

Dans un Job Talend Map/Reduce, vous devez compresser chaque index de synonymes à utiliser comme fichier .zip.

Shape Une règle de ce type utilise des segments pré-définis ainsi que des règles établies Regex ou Index ou les deux pour faire correspondre les données entrantes. RuleName : Address

RuleValue : "<INT><WORD><StreetType>"

Cette règle correspond aux adresses telles que 12 main street, où INT et WORD sont des jetons prédéfinis (éléments de règle) et StreetType est une règle Index que vous devez définir avec cette règle d'exemple dans la vue Basic settings de ce composant.

Pour plus d'informations sur le type de règle Shape, consultez Standardisation d'adresses provenant de données non structurées.

Seul le contenu placé entre &lt; > est reconnu. Autrement, le contenu est considéré comme une erreur ou est omis.

Pour les symboles ANTLR donnés :

Symboles Description
| alternative
's' caractère littéral ou chaîne de caractères constante (string literal)
+ 1 ou plus
* 0 ou plus
? facultatif ou prédicat sémantique
~ ne correspond pas

Pour plus d'informations sur les symboles ANTLR, consultez : https://theantlrguy.atlassian.net/wiki/display/ANTLR3/ANTLR+Cheat+Sheet (en anglais).

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.