TUTOS.EU

Regex et la signification des différents symboles

Vocabulaire des expressions rationnelles

Le tableau ci-dessous est une repompe complétée et modifiée de cette page :
https://httpd.apache.org/docs/trunk/fr/rewrite/intro.html

Symbole Signification Exemple
/bla/ Requête regex où l'on cherche les lignes contenant bla  
| Opérateur OU logique Bonjour|revoir correspond au mot Bonjour ou revoir
. Tout caractère unique c.t correspondra à cat, cot, cut, etc.
{min,max} Quantificateur. Indique le nombre de répétition du caractère ou de la suite de caractère qui les précède.

bb correspond à b{2}

b{2,3} va matcher avec bb ou bbb mais pas b ou bbbb

? Rend le caractère précédent optionnelle.

Est équivalent à {,1} cad 0 ou 1 répétition

colou?r correspondra à color et colour.

!

négation mais uniquement avec le module mod_rewrite d'apache

Pour les négations voir sur datacadamia.com ou plus bas avec [^ ]

 
* Répète le caractère précédent zéro ou plusieurs fois

Est équivalent à {0,} cad 0 ou plusieurs répétitions

a* correspond à tout ce à quoi correspond a+, mais correspond aussi à la chaîne vide.

.* Tout caractère 0 ou n fois, cad tout, n'importe quelle suite de caractères. C'est comme un wildcard  
+ Répète le caractère précédent une ou plusieurs fois

Est équivalent à {1,} cad 1 ou plusieurs répétitions

a+ correspond à a, aa, aaa, etc.

^

Début de la chaîne, l'ancrage du début

Sert aussi de négation pour une classe.

Voir sur datacadamia.com our plus bas avec [^ ]

^a correspond à une chaîne qui commence par a
$ Fin de la chaîne ou ancrage de fin a$ correspond à une chaîne qui se termine par a.
( ) Regroupe plusieurs caractères en une seule entité, et conserve une correspondance à des fins d'utilisation dans une référence arrière.

(ab)+ correspond à ababab

le + s'applique au groupe (ab).

(?!) (?!) est un lookahead négatif. lookahead veut dire qui vient après, et le lookahead négatif veut dire qui ne vient pas après

Parmis ces 3 phrases, le regex (Robert va)(?!mal) ne sélectionnera pas Robert va mal :

  • Robert va bien
  • Robert va mal
  • Robert va vite
/(robert|bob)/ Affiche les lignes qui contiennent robert ou bob  
[ ] Une classe de caractères - correspond à un des caractères de la classe c[uoa]t correspond à cut, cot ou cat.
[^ ] Négation de la classe de caractères - correspond à tout caractère ne faisant pas partie de la classe c[^/]t correspond à cat ou c=t mais pas à c/t
^[^] Négation d'une classe de caractères qui commence par ^[^#;] correspond à tout ce qui ne commence pas par # ou ;
\w Ensemble préconçu pour les mots [a-zA-Z0-9_] cad tout chiffre ou lettre et underscore. L'inverse est \W  
\d Ensemble préconçu pour [0-9] cad tous les chiffres. L'inverse est \D  
\s

Ensemble préconçu pour tous les symboles d'espacement, ce qui comprend espace, tab, nouvelle ligne. L'inverse est \S

Cela correspond à \t \n \r

 
\t Tabulation  
\n Nouvelle ligne  
\r Retour chariot  
g Global. Recherche globale. On ne s'arrête pas à un résultat. Sur /we are/g la recherche va isoler les e
i Case insensitive matching. On ne fait pas la différence entre majuscules et minuscules.  
m Multi-line. La recherche ne s'arrête pas à la fin de la ligne. Elle couvre toutes les lignes.  

 

Ces caractères sont spéciaux. Pour les affichier, il faut au préalable les échaper avec \
[ \ ^ $ . | ? * + ( )

 

Ce site permet de tester son regex : https://www.regextester.com/

ainsi que https://regex101.com/

Pages Web

Site WebDescription
Class PatternA compiled representation of a regular expression
lucaswillems.comTutoriel pour maîtriser les expressions régulières
Buzut.netTutoriel pour maîtriser les expressions régulières

2