Parsing pour les États Unis Numéros de téléphone

Ce modèle montre comment analyser les numéros de téléphone aux États-Unis et les diviser en parties de composant. La règle d'analyse sépare chaque jeton du champ PhoneNumber et copie chacun dans quatre champs : CountryCode, AreaCode, Exchange et Number.

Scénario commercial

Vous travaillez pour un fournisseur d'accès sans fil et un projet analysant les données de numéros de téléphone entrants vous a été assigné pour une région de votre entreprise en pleine expansion.

Les flux de données suivants apportent une solution au scénario commercial :



Ce modèle de flux de données est disponible dans Enterprise Designer. Accédez à Fichier > Nouveau > Flux de données > À partir d'un modèle et sélectionnez ParseUSPhoneNumbers. Ce flux de données requiert le module Data Normalization.

Dans ce flux de données, les données sont lues dans un fichier et traitées par le stage Open Parser. Pour chaque ligne de données dans le fichier d'entrée, ce flux de données effectuera ce qui suit :

Read from File

Ce stage identifie le nom de fichier, l'emplacement et la disposition du fichier contenant les numéros de téléphone que vous désirez analyser.

Open Parser

Ce stage définit s'il faut utiliser une grammaire spécifique à une culture créée dans Domain Editor ou définir une grammaire indépendante du domaine. Une grammaire de parsing spécifique à une culture, que vous pouvez créer dans Domain Editor, est une grammaire de parsing validée associée à une culture et à un domaine. Une grammaire de parsing indépendante d'un domaine, que vous pouvez créer dans l'Open Parser, est une grammaire de parsing validée associée à une culture et à un domaine.

Dans ce modèle, la grammaire de parsing est définie comme grammaire indépendante du domaine.

Le stage Open Parser contient une grammaire de parsing définissant les commandes et expressions suivantes :

  • %Tokenize est défini sur None. Lorsque Tokenize est défini sur None, la règle de grammaire de parsing doit comprendre tout espace ou autre séparateur de jetons dans sa définition.
  • %InputField est défini de sorte à analyser les données d'entrée du champ PhoneNumber.
  • %OutputFields est défini de sorte à séparer les données analysées en quatre champs : CountryCode, AreaCode, Exchange et Number.
  • L'expression <root> définit le modèle des jetons en cours d'analyse et inclut des instructions OR (|), de sorte qu'un numéro de téléphone corresponde à :
  • CountryCode, AreaCode, Exchange et Number OR
  • AreaCode, Exchange et Number OR
  • Exchange et Number

La grammaire de parsing utilise une combinaison d'expressions régulières et de caractères libéraux pour construire un modèle pour les numéros de téléphone. Tout caractère entre guillemets dans cette grammaire de parsing sont des caractères littéraux ou une expression régulière.

Le caractère plus (+) utilisé dans cette commande <root> est défini comme un caractère littéral, parce qu'il figure entre guillemets. Vous pouvez utiliser des guillemets simples ou doubles pour indiquer un caractère littéral. Si le caractère plus est utilisé sans guillemets, il signifie que l'expression qu'il suit peut se produire une ou plusieurs fois.

Les règles du domaine du numéro de téléphone sont définies pour correspondre aux modèles de caractères suivants :

  • Zéro ou une occurrence d'un caractère « + ».
  • La règle CountryCode, qui est constituée d'un seul chiffre compris entre 0 et 9.
  • Zéro ou une occurrence d'une parenthèse ouverte ou un caractère tiret ou espace. Deux de ces caractères ayant une occurrence dans les résultats de séquence d'une non correspondance, en d'autres termes, un numéro de téléphone non valide.
  • La règle AreaCode, qui est une séquence d'exactement trois chiffres compris entre 0 et 9.
  • Zéro ou une occurrence d'une parenthèse ouverte ou un caractère tiret ou espace. Deux de ces caractères ayant une occurrence dans les résultats de séquence d'une non correspondance, en d'autres termes, un numéro de téléphone non valide.
  • La règle Exchange, qui est une séquence d'exactement trois chiffres compris entre 0 et 9.
  • Zéro ou une occurrence d'une parenthèse ouverte ou un caractère tiret ou espace. Deux de ces caractères ayant une occurrence dans les résultats de séquence d'une non correspondance, en d'autres termes, un numéro de téléphone non valide.
  • La règle Number, qui est une séquence d'exactement quatre chiffres compris entre 0 et 9.

Les variables de règle qui définissent le domaine doivent utiliser les mêmes noms que les champs de sortis définis dans la commande OutputFields requise.

Expressions régulières et quantificateurs d'expression

La grammaire d'analyse utilise une combinaison d'expressions régulières et de quantificateurs d'expression pour construire un modèle pour les numéros de téléphone aux États-Unis. La grammaire de parsing utilise ces caractères spéciaux :

  • Le caractère « ? » signifie qu'une expression régulière peut se produire zéro ou une fois.
  • Le caractère (|) indique une condition OR.
  • Le caractère « ; » signifie la fin d'une règle.

Utilisez l'onglet Commandes pour explorer la signification des autres symboles spéciaux que vous pouvez utiliser dans les grammaires d'analyse en survolant la description avec la souris.

Utilisation de l'onglet Aperçu

Pour tester la grammaire d'analyse, cliquez sur l'onglet Aperçu. Saisissez les numéros de téléphone affichés ci-dessous dans le champ PhoneNumber, puis cliquez sur Aperçu.



Vous pouvez aussi saisir d'autres numéros de téléphone valides et non valides pour observer comment les données d'entrée sont parsées.

Vous pouvez aussi utiliser la fonctionnalité Suivi pour voir une représentation graphique soit du résultat de parsing final, soit étape par étape au cours des événements de parsing. Cliquez sur le lien de la colonne Suivre pour afficher Suivre les détails de la ligne de données.

Write to File

Le modèle comporte un stage Write to File. Outre le champ d'entrée, le fichier de sortie contient les champs CountryCode, AreaCode, Exchange et Number.