Regex general

De Lowgeek wiki

Regex.png

Syntaxe

Métacaractères

Caractère Signification
^ début de la chaîne
$ fin de la chaîne
. n'importe quel caractère sauf retour à la ligne
* matche 0 ou plusieurs fois
+ matche au moins 1 fois
 ? matche 0 ou 1 fois
| alternative
() groupement; mémorisation
[] jeu de caractères
{} répétition


Répétition

Caractère Signification
a* zéro ou plusieurs a
a+ un ou plusieurs a
a? zéro ou un a
a{m} exactement m a
a{m,} au moins m a
a{m,n } au minimum m et au maximum n a


Notations spéciales avec \

Caractère Signification
\t tabulation
\n entrée
\r retour chariot
\xhh caractère hh encodé en hexadécimal
\b bordure de mot
\B pas en bordure de mot
\w matche n'importe quel caractère classifié comme "mot" (i.e. un alphanumérique ou _)
\W matche n'importe quel non-caractère
\s matche n'importe quel espace (blanc, tabulation, nouvelle ligne)
\S matche n'importe quel caractère qui n'est pas un espace
\d matche un chiffre (équivalent à [0-9])
\D matche tout sauf un chiffre


Ensembles [...]

Caractère Signification
[caractères] matche n'importe quel caractère de la séquence
[x-y] matche n'importe quel caractère compris entre x et y (inclus) dans l'encodage ASCII
[\-] matche le caractère - (moins)
[\n] matche le retour à la ligne
[^texte] matche n'importe quel caractère sauf ceux indiqués à la suite de l'accent circomflexe


Exemple

Motif Matche avec...
abc abc (cette séquence exacte, mais n'importe où dans la chaîne)
^abc abc en début de chaîne
abc$ abc en fin de chaîne
a|b soit a, soit b
^abc|abc$ la chaîne abc en début ou en fin de chaîne
ab{2,4}c un a suivi de deux, trois ou quatre b, suivi par un c
ab{2,}c un a suivi par au moins deux b, suivi par un c
ab*c un a suivi par n'importe quel nombre (zéro ou plus) de b, suivi par un c
ab+c un a suivi par un ou plusieurs b, suivi par un c
ab?c un a suivi par un b (mais celui-ci est facultatif), suivi par un c; cela matche donc soit avec abc, soit avec ac
a.c un a suivi par un caractère quelconque (sauf un retour à la ligne), suivi par un c
a\.c a.c
[abc] a, b ou c
[Aa]bc Abc ou abc
[abc]+ n'importe quelle chaîne comportant des a, b ou c (comme a, abba, acbabcacaa)
[^abc]+ n'importe quelle chaîne qui comporte ni des a, ni des b ni des c (comme defg)
\d\d deux chiffres, comme 42; on aurait pu l'écrire également \d{2}
\w+ un "mot": une séquence non-vide de caractères alphanumériques, comme toto ou 12titi8 ou encore tata_1
100\s*mk les chaînes 100 et mk séparés optionnellement par n'importe quel nombre de blancs (espaces, tabulations ou retour chariots)
abc\b abc suivi d'une bordure de mot (i.e. abc mais pas abcd)