Table des matières

Search

  1. Préface
  2. Le langage de transformation
  3. Constantes
  4. Opérateurs
  5. Variables
  6. Dates
  7. Fonctions

Transformation Language Reference

Transformation Language Reference

REG_EXTRACT

REG_EXTRACT

Extrait des sous-tendances d'une expression régulière dans une valeur d'entrée. Par exemple, à partir d'un modèle d'expression régulière pour un nom complet, vous pouvez extraire le prénom ou le nom de famille.
Utilisez la fonction REG_REPLACE pour remplacer le modèle de caractère d'une chaîne par un autre modèle de caractère.

Syntaxe

REG_EXTRACT(
subject
,
'pattern', subPatternNum
)
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
subject
Requis
Type de données de chaîne. Transmet la valeur à comparer avec le modèle d'expression régulière.
pattern
Requis
Type de données de chaîne. Modèle d'expression régulière avec lequel établir une correspondance. Vous devez utiliser une syntaxe d'expression régulière compatible perl. Placez le modèle entre guillemets simples. Placez chaque sous-modèle entre parenthèses.
subPatternNum
Facultatif
Valeur entière. Nombre de sous-modèles de l'expression régulière à faire correspondre. Utilisez les directives suivantes pour définir le nombre de sous-modèles :
  • Aucune valeur ou 1. Extrait le premier sous-modèle d'expression régulière.
  • 2. Extrait le deuxième sous-modèle d'expression régulière.
  • n. Extrait le
    n
    ième sous-modèle d'expression régulière.
La valeur par défaut est 1.

Utilisation de la syntaxe d'expression régulière compatible perl

Vous devez utiliser la syntaxe d'expression régulière compatible perl avec les fonctions REG_EXTRACT, REG_MATCH et REG_REPLACE.
Le tableau suivant fournit les instructions relatives à la syntaxe d'expression régulière compatible perl :
Syntaxe
Description
. (point)
Fait correspondre l'un des caractères.
[a-z]
Fait correspondre une instance d'un caractère en minuscule. Par exemple, [a-z] correspond à ab. Utilisez [A-Z] pour faire correspondre des caractères en majuscule.
\d
Fait correspondre une instance d'un chiffre de 0 à 9.
\s
Fait correspondre une espace.
\w
Fait correspondre un caractère alphanumérique, y compris le soulignement (_).
()
Groupe une expression. Par exemple, les parenthèses dans (\d-\d-\d\d) groupent l'expression \d\d-\d\d, qui recherche deux nombres suivis d'un trait d'union, puis de deux nombres (12-34, par exemple).
{}
Fait correspondre le nombre de caractères. Par exemple, \d{3} fait correspondre trois chiffres (650 ou 510, par exemple). De même, [a-z]{2} fait correspondre deux lettres (CA ou NY, par exemple).
?
Fait correspondre ou non le caractère ou le groupe de caractères précédent. Par exemple, \d{3}(-{d{4})? fait correspondre trois chiffres, qui peuvent être suivi par un trait d'union et quatre chiffres.
* (astérisque)
Fait correspondre aucune ou plusieurs instances des valeurs qui suivent l'astérisque. Par exemple, *0 correspond à toute valeur précédant un 0.
+
Fait correspondre une ou plusieurs instances des valeurs qui suivent le signe plus. Par exemple,\w+ correspond à toute valeur suivant un caractère alphanumérique.
Par exemple, l'expression régulière recherche des codes postaux des Etats-Unis à 5 chiffres, par exemple 93930 et des codes postaux à 9 chiffres, par exemple 93930-5407 :
\d{5}(-\d{4})?
\d{5} fait référence à cinq chiffres, par exemple 93930. Les parenthèses autour de -\d{4} groupe ce segment de l'expression. Le trait d'union représente le trait d'union dans un code postal à 9 chiffres, comme dans 93930-5407. \d{4} fait référence à quatre chiffres, par exemple 5407. Le point d'interrogation indique que le trait d'union et quatre derniers chiffres sont facultatifs ou peuvent apparaître une seule fois.

Conversion de la syntaxe COBOL en syntaxe d'expression régulière compatible perl

Si vous connaissez la syntaxe COBOL, vous pouvez utiliser les informations suivantes pour écrire des expressions régulières compatibles perl.
Le tableau suivant présente des exemples de syntaxe COBOL et leurs équivalents perl :
Syntaxe COBOL
Syntaxe perl
Description
9
\d
Fait correspondre une instance d'un chiffre de 0 à 9.
9999
\d\d\d\d
ou
\d{4}
Fait correspondre quatre chiffres de 0 à 9 (1234 ou 5936, par exemple).
Q
[a-z]
Fait correspondre une instance d'une lettre.
9xx9
\d[a-z][a-z]\d
Fait correspondre tout chiffre suivi de deux lettres et d'un autre chiffre (1ab2, par exemple).

Conversion de la syntaxe SQL en syntaxe d'expression régulière compatible perl

Si vous connaissez la syntaxe SQL, vous pouvez utiliser les informations suivantes pour écrire des expressions régulières compatibles perl.
Le tableau suivant présente des exemples de syntaxe SQL et leurs équivalents perl :
Syntaxe SQL
Syntaxe perl
Description
%
. *
Fait correspondre toute chaîne.
A%
A.*
Fait correspondre la lettre « A » suivie d'une chaîne (« Année », par exemple).
_
. (point)
Fait correspondre l'un des caractères.
A_
A.
Fait correspondre « A » suivi d'un caractère (AZ, par exemple).

Valeur de retour

Renvoie la valeur du
n
ième sous-modèle dans la valeur d'entrée. Le
n-ième
sous-modèle est basé sur la valeur que vous spécifiez pour subPatternNum.
NULL si l'entrée est une valeur nulle ou si le modèle est nul.

Exemple

Vous pouvez utiliser REG_EXTRACT dans une expression pour extraire les deuxièmes prénoms d'une expression régulière qui fait correspondre les prénoms, deuxièmes prénoms et noms de famille. Par exemple, l'expression suivante renvoie le deuxième prénom d'une expression régulière :
REG_EXTRACT( Employee_Name, '(\w+)\s+(\w+)\s+(\w+)',2)
Employee_Name
Return Value
Stephen Graham Smith
Graham
Juan Carlos Fernando
Carlos