Expressions régulières
Les expressions régulières (ou regex) sont des chaînes de recherche avancée qui vous permettent de mettre en correspondance des modèles complexes.
Dans cette documentation, les éléments des expressions régulières sont classés par catégorie.
Tous les exemples listés se basent sur les deux lignes suivantes :
Commentaire de happy_user@company.com (19-Jan-2017) :
I love working with Talend Data Preparation! It really helps me with all my daily tasks!
Exemples d'expressions régulières
Expression régulière | Correspond à |
---|---|
\bTa | Talend |
\bw\w* | Numéro d'identification TVA autrichien |
\w+n\b | Préparation |
Talend\s\w+\s\w+ | Talend Data Preparation |
task(s?) | tasks (correspondrait également à "task") |
\w+@\w+.com | happy_user@company.com |
\d{2}-.*-\d+ | 04-Apr-2016 |
Ancres
Caractère | Correspond à | Exemple |
---|---|---|
^ | Début de chaîne ou début de ligne dans un modèle à plusieurs lignes | ^Comment correspond à "Comment" en début de ligne. ^C.* correspond à la première ligne. |
$ | Fin de caractère ou fin de ligne dans un modèle à plusieurs lignes | !$ correspond au dernier point d'exclamation. |
\b | Limite de mot | \bwo correspond à "wo" dans "working". \bwo\w+ correspond à "working". ng\b correspond à "ng" dans "working". \w+ng\b correspond à "working". |
\B | Pas de limite de mot | \Bh correspond au dernier "h" dans "with" mais pas au "h" dans "helps" ou "happy". h\B correspond au premier "h" dans "helps" et "happy" mais pas au dernier dans "with". |
Classes des caractères
Caractère | Correspond à | Exemple |
---|---|---|
. | Tout caractère, excepté celui de nouvelle ligne (\n) | . correspond à tous les caractères dans le texte, à part le retour à la ligne. |
\s | Espace blanc | Talend\sData correspond à "Talend Data". Data\s+Preparation correspond à "Data Preparation". |
\S | Pas d'espace blanc | \S correspond à tous les caractères dans la phrase, à part les espaces. |
\d | Nombre | \d\{4\} correspond à "2016". |
\D | Valeur numérique décimale | \D correspond à tous les caractères dans le texte mais pas aux nombres. |
\w | Caractère de mot et tiret bas | T\w+ correspond à "Talend". |
\W | Pas de caractère de mot | company\Wcom correspond à "company.com". |
\n | Nouvelle ligne | .*\n.* correspond au texte entier. |
Caractères d'échappement
Caractère | Correspond à |
---|---|
\. | . |
\\ | \ |
\+ | + |
\* | * |
\? | ? |
\$ | $ |
\[ | [ |
\] | ] |
\{ | { |
\} | } |
\( | ( |
\) | ) |
\| | | |
\/ | / |
Groupes et intervalles
Caractère |
Correspond à |
Exemple |
---|---|---|
() | Groupe | m(e|y) correspond à "me" et "my". |
(a|b) | a ou b | m(e|y) correspond à "me" (dans "Comment"), "me" et "my". |
[abc] | Intervalle (a ou b ou c) | m[ey] correspond à "me" (dans "Comment"), "me" et "my". |
[a-q] | Lettre de a à q | m[a-m] correspond à "me" (dans "Comment") et "me" mais pas à "my". |
[0-7] | Chiffre de 0 à 7 | 201[0-5] ne correspond pas à "2016" mais peut correspondre à toutes les années entre "2010" et "2015". |
L'expression capturée dans un groupe peut être réutilisée à l'aide du symbole $. Quand plus d'un groupe est capturé, ajoutez un nombre au symbole $, pour qu'il corresponde à l'ordre dans lequel ils ont été capturés.
Par exemple, vous souhaitez reformuler l'expression Y16Q02 pouvant être rapprochée de l'expression régulière Y(\d\{2\})Q(\d\{2\}). Vous pouvez reformuler votre expression originale en conservant uniquement les caractères capturés. Si vous souhaitez que votre nouvelle expression soit Quarter 02 of year 2016, la nouvelle expression régulière Quarter $2 of year 20$1 va y correspondre.
Quantificateurs
Caractère | Correspond à | Exemples de |
---|---|---|
* | 0 ou plus | work\w* correspond à "working", à "work" et à "works". |
+ | 1 ou plus | work\w+ correspond à "working" mais aussi à "works". Cependant, il ne correspond à "work". |
? | 0 ou 1 fois | work(s?) correspond à "work" et "works" mais pas à "working". |
{3} | Exactement 3 fois | 20\d\{2\} correspond à "2016" et aux autres nombres entre "2000" et "2099". |
{3,} | 3 fois ou plus | 20\d{2,} correspond à "2016" et à tous les nombres supérieurs ou égaux à "2000" commençant par "20". |
{3,5} | 3, 4 ou 5 fois | 20{1,2} correspond à "2016" et à tous les nombres de "200" à "2099". |
[0-7] | Chiffre de 0 à 7 | 201[0-9] correspond à "2016" et à tous les nombres de "2010" à "2019". |