Regex Cheat Sheet/Basics
Les expressions régulières (regex ou regexp) sont un outil très utile pour identifier des modèles spécifiques dans n'importe quel texte, ce qui aide à extraire des informations quel que soit le format du texte.
Regex peut être utilisé pour valider les entrées, le scraping Web, la recherche de chaînes spécifiques dans les documents, la validation de la syntaxe pour les compilateurs et bien d'autres exemples.
Regex est largement utilisé dans plusieurs langages de programmation utilisant presque la même syntaxe, donc cet article prétend montrer les opérateurs regex de base.
Les sections suivantes montreront les différents opérateurs utilisés pour les regex et quelques exemples. Vous pouvez également tester vos expressions régulières avec quelques explications sur cette page.
Ancres
Personnages | Utiliser |
---|---|
^ | Indique le début de la chaîne. Il ne correspondra qu'à la chaîne qui commence par le(s) caractère(s) qui suit |
$ | Indique la fin de la chaîne. Cela correspondra à toute chaîne se terminant par le(s) caractère(s) avant le symbole "$" |
abc | Reconnaît n'importe quelle chaîne contenant la séquence de caractères "abc" |
Voici quelques exemples :
Exemple | Description | Exemples de chaînes correspondantes |
---|---|---|
^A | Reconnaît toutes les chaînes qui commencent par un A | "A n pomme est dans l'arbre », « A nouveau restaurant" |
end$ | Reconnaît une chaîne qui se termine par la séquence de caractères "fin" | "La fin ", " Faisons semblant de finir ” |
^Bonjour tout le monde$ | Correspond à la chaîne exacte "Hello world" | "Bonjour tout le monde ” |
commander | Reconnaît n'importe quelle chaîne contenant le texte "commande" | "Ma commande le numéro est 54" |
Quantificateurs
Les quantificateurs sont utilisés pour représenter les moments où nous voulons que le caractère ou le groupe de caractères précédent apparaisse dans notre correspondance.
Personnages | Utiliser |
---|---|
* | Indique zéro ou plus |
+ | Indique un ou plusieurs |
? | Indique zéro ou un |
x{n} | Utilisé pour spécifier le nombre de fois ('n') que le caractère précédent ('x') doit apparaître |
x{n, } | Utilisé pour spécifier le nombre minimum de fois ('n') que le caractère précédent ('x') doit apparaître |
x{n, m} | Utilisé pour spécifier le nombre minimum ('n') et maximum ('m') de fois où le caractère précédent ('x') doit apparaître |
Voici quelques exemples :
Exemple | Description | Exemples de chaînes correspondantes |
---|---|---|
bonjour !* | Reconnaît n'importe quelle chaîne 'hello' suivie de zéro ou plusieurs caractères '!' | "bonjour », « bonjour ! ”, bonjour !! |
bonjour !+ | Reconnaît n'importe quelle chaîne 'hello' suivie d'un ou plusieurs caractères '!' | "bonjour ! », « bonjour !! ” |
bonjour ! ? | Correspond à n'importe quelle chaîne "hello" suivie de zéro ou d'un caractère "!" | "bonjour », « bonjour ! ” |
(ha){2,4} | Reconnaît n'importe quelle chaîne qui répète le groupe de caractères "ha" deux à quatre fois | "haha », « hahaha », « hahahaha ” |
Opérateur OU
Personnages | Utiliser |
---|---|
a|b | Reconnaît n'importe quelle chaîne contenant 'a' ou 'b' |
[ ] | Est utilisé pour représenter une liste, donc il correspond à une chaîne qui contient l'un des caractères à l'intérieur de la liste |
Voici quelques exemples :
Exemple | Description | Exemples de chaînes correspondantes |
---|---|---|
se(a|e) | Reconnaît toute chaîne contenant le texte "se" suivi d'un "a" ou d'un "e" | "voir ”, “mer ” |
a[bcd] | Reconnaît n'importe quelle chaîne contenant un 'a' suivi de 'b', 'c' ou 'd' | "ab ”, “ac ”, “annonce ” |
Classes de caractères
Les opérateurs de classes de caractères vous permettent de faire correspondre des caractères à l'intérieur d'une catégorie (classe). Ces opérateurs offrent leurs négations, qui sont les mêmes que l'opérateur normal mais en majuscules.
Personnages | Utiliser |
---|---|
\d | Correspond à un seul chiffre personnage |
\w | Correspond à un seul mot caractère (lettres, chiffres et trait de soulignement) |
\s | Correspond à un seul espace blanc caractère, y compris les tabulations et les sauts de ligne |
\D | Correspond à un seul non-chiffre personnage |
\W | Correspond à un seul non-mot caractère (lettres, chiffres et trait de soulignement) |
\S | Correspond à un seul espace non blanc caractère, y compris les tabulations et les sauts de ligne |
. | Correspond à n'importe quel caractère unique |
Drapeaux
Regex utilise généralement la forme /pattern/
. À la fin, nous pouvons utiliser les drapeaux suivants :
Drapeau | Description |
---|---|
g | Le mondial flag est utilisé pour rechercher toutes les correspondances individuelles à l'intérieur de la chaîne. Si elle n'est pas utilisée, l'expression reviendra après la première correspondance |
m | Le multiligne le drapeau permet d'utiliser ^ et $ comme le début et la fin d'une ligne, et non le début et la fin de la chaîne, qui peut contenir plusieurs lignes |
je | Les insensibles flag rend l'expression régulière insensible à la casse |
Conclusions
Regex a beaucoup d'utilisations. Vous pouvez combiner les opérateurs simples expliqués dans cet article pour créer des recherches de modèles complexes. Un exemple est de valider une adresse e-mail, cela peut être fait avec l'expression régulière suivante :
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
Cet exemple correspond à une chaîne complète pour laquelle il recherche un modèle dans l'ordre suivant :
[\w-\.]+
:une combinaison d'un ou plusieurs caractères de mot, traits d'union ou points@
:le symbole @([\w-]+\.)+
:une ou plusieurs combinaisons d'un ou plusieurs caractères de mot ou traits d'union terminés par un point (pour les domaines et sous-domaines de l'e-mail comme email.rackspace.)[\w-]{2,4}
:une combinaison de caractères de 2, 3 ou 4 mots ou traits d'union pour la fin de l'e-mail (com)
Tout comme cet exemple, il y en a beaucoup d'autres qui peuvent être facilement mis en œuvre à des fins différentes.