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, match_from_start
)
Le tableau suivant décrit les arguments de cette commande:
Argument
Obligatoire/
Facultatif
Description
sujet
Obligatoire
Type de données Chaîne. Transmet la valeur à comparer avec le modèle d'expression régulière.
modèle
Obligatoire
Type de données Chaîne. Modèle d'expression régulière avec lequel vous voulez établir une correspondance. Vous devez utiliser une syntaxe d'expression régulière compatible perl. Placez le modèle entre guillemets. Placez chaque sous-modèle entre parenthèses.
subPatternNum
Facultatif
Valeur entière. Nombre de sous-modèles de l'expression régulière que vous voulez 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.
Par défaut 1.
match_from_start
Facultatif
Valeur numérique. Renvoie la sous-chaîne si une correspondance est trouvée depuis le début de la chaîne. Utilisez les directives suivantes pour déterminer la correspondance de valeur de départ :
  • 0. Fait correspondre le modèle avec la chaîne de sujet de l'index de démarrage ou de n'importe quel index.
  • Différent de zéro. Fait correspondre le modèle avec la chaîne de sujet de l'index de démarrage.

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
. (un 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 entre 0 et 9.
\s
Fait correspondre un 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) groupe l'expression \d\d-\d\d, qui recherche deux nombres suivis d'un trait d'union, puis de deux nombres, comme dans 12-34.
{}
Fait correspondre le nombre de caractères. Par exemple, \d{3} fait correspondre trois chiffres, par exemple 650 ou 510. De même, [a-z]{2} fait correspondre deux lettres, par exemple CA ou NY.
?
Fait correspondre le caractère ou groupe de caractères précédent aucune ou une fois. Par exemple, \d{3}(-{d{4})? fait correspondre trois chiffres, qui peuvent être suivis d'un trait d'union et de quatre chiffres.
* (astérisque)
Fait correspondre aucune ou plusieurs instances des valeurs qui suivent l'astérisque. Par exemple, *0 correspond à toute valeur qui précède un 0.
+
Fait correspondre une ou plusieurs instances des valeurs qui suivent le signe plus. Par exemple,\w+ correspond à toute valeur qui suit 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 entre 0 et 9.
9999
\d\d\d\d
ou
\d{4}
Fait correspondre quatre chiffres de 0-9, comme dans 1234 ou 5936.
x
[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, comme dans 1ab2.

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, comme dans le mot Area.
_
. (un point)
Fait correspondre l'un des caractères.
A_
A.
Fait correspondre « A » suivi d'un caractère, par exemple AZ.

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