[ Toutes les pages - php - regex ]

Les motifs des REGEX Préférences

Pargager sur facebook

Afficher le menu

Le caractère d'échappement

\
Caractère d'échappement: marque le caractère suivant comme caractère spécial ou littéral.
Par exemple, "n" correspond au caractère "n". "\n" correspond à un caractère de nouvelle ligne.
La séquence "\\" correspond à "\", tandis que "\(" correspond à "(".

Les quantificateurs

*
Dans la recherche, répète zéro ou plusieurs fois le caractère ou l'expression qui précède.
Ainsi, "zo*" correspond à "z" ou à "zoo".
+
Dans la recherche, répète une ou plusieurs fois le caractère ou l'expression qui précède.
Ainsi, "zo+" correspond à "zoo", mais pas à "z".
?
Dans la recherche, répète zéro ou une fois le caractère ou l'expression qui précède.
Par exemple, "a?ve?" correspond à "ve" dans "lever".
{n}
n est un nombre entier non négatif. Dans la recherche, répète exactement zéro ou une fois le caractère ou l'expression qui précède.
Par exemple, "o{2}" ne correspond pas à "o" dans "Bob," mais aux deux premiers "o" dans "fooooot".
{n,}
n est un entier non négatif. Dans la recherche, répète au moins n fois le caractère ou l'expression qui précède.
Par exemple, "o{2,}" ne correspond pas à "o" dans "Bob", mais à tous les "o" dans "fooooot". "o{1,}" équivaut à "o+" et "o{0,}" équivaut à "o*".
{n,m}
m et n sont des entiers non négatifs. Dans la recherche, répète zéro au moins n et à au plus m fois le caractère ou l'expression qui précède.
Par exemple, "o{1,3}" correspond aux trois premiers "o" dans "foooooot" et "o{0,1}" équivaut à "o?".

Quantificateurs gourmands

*
+
?
{n}
{min,}
{min,max}

Quantificateurs paresseux

*?
+?
??
{n}?
{min,}?
{min,max}?

Les abréviations de caractères

\t
Tabulation.
\v
Tabulation verticale.
\f
Saut de page.
\n
Nouvelle ligne.
\r
Retour chariot.
\e
Caractère d'échappement.
\num
Détermine s'il s'agit d'une valeur d'échappement octale ou d'une référence arrière.
Caractère spécifié en octal (0-7) et à condition qu'il n'y ait pas de référence arrière correspondante.
Exemple: \012
\xnn
Carartère spécifié en hexadécimal, 2 chiffres. Exemple: \2E.

Les classes de caractères

.
Correspond à tout caractère unique, sauf le caractère de nouvelle ligne.
[xyz]
Liste de caractères autorisés. Correspond à l'un des caractères indiqués.
Par exemple, "[abc]" correspond à "a" dans "plat".
[^xyz]
Liste de caractères interdits. Correspond à tout caractère non indiqué.
Par exemple, "[^abc]" correspond à "p" dans "plat".
[a-z]
Intervalle de caractères autorisés. Correspond à tout caractère dans l'intervalle spécifié.
Par exemple, "[a-z]" correspond à tout caractère alphabétique minuscule compris entre "a" et "z".
Pour représenter le caractère - lui-même, le mettre premier ou dernier.
[^m-z]
Intervalle de caractères interdits. Correspond à tout caractère ne se trouvant pas dans l'intervalle spécifié.
Par exemple, "[^m-z]" correspond à tout caractère ne se trouvant pas entre "m" et "z".

Les abréviations des classes de caractères

\d
Correspond à un caractère représentant un chiffre. Équivaut à [0-9].
\D
Correspond à un caractère ne représentant pas un chiffre. Équivaut à [^0-9].
\s
Correspond à tout espace blanc, y compris l'espace, la tabulation, le saut de page, etc. Équivaut à "[ \f\n\r\t\v]".
\S
Correspond à tout caractère d'espace non blanc. Équivaut à "[^ \f\n\r\t\v]".
\w
Correspond à tout caractère représentant un mot et incluant un trait de soulignement. Équivaut à "[A-Za-z0-9_]".
\W
Correspond à tout caractère ne représentant pas un mot. Équivaut à "[^A-Za-z0-9_]".

Les correspondances mémorisées.

\num
Correspond à num, où num est un entier positif.
Fait référence aux correspondances mémorisées entre parenthèses si \num est précédé d'au moins num captures.
Par exemple, "(.)\1" correspond à deux caractères identiques consécutifs.

L'alternative

x|y
Correspond soit à x soit à y.
Par exemple, "z|foot" correspond à "z" ou à "foot". "(z|f)oot" correspond à "zoot" ou à "foot".

Les groupements

(modèle)
Groupement de capture. Exemple: (souris).
(?:modèle)
Groupement sans capture. Pour effectuer un groupement sans avoir besoin de capturer le contenu de la parenthèse, par exemple dans le cas d'une alernative, ce qui évite de conserver des valeurs capturées inutilement. Exemple: (?:rat|souris).
(?=modèle)
Le test avant positif, se comporte comme des parenthèses non-capturantes sauf qu'elles ne consomment rien dans la chaine cible. Par exemple:
chat(?= perché| botté) reconnait chat seulement s'il est immédiatement suivi de perché ou botté.
(?!modèle)
Le test avant négatif, se comporte comme des parenthèses non-capturantes sauf qu'elles ne consomment rien dans la chaine cible. Par exemple:
chat(?! perché| botté) reconnait chat seulement s'il n'est pas immédiatement suivi de perché ou botté.
\w(?!\.) reconnait un mot sauf s'il est suivit d'un point.
(?<=modèle)
Le test arrière positif, se comporte comme des parenthèses non-capturantes sauf qu'elles ne consomment rien dans la chaine cible.
Exemple: (?<=\d)\d reconnait un chiffre que si il est immédiatement précedé d'un autre chiffre.
(?<!modèle)
Le test arrière négatif, se comporte comme des parenthèses non-capturantes sauf qu'elles ne consomment rien dans la chaine cible.
Exemple: (?<!\.)\w reconnait un mot seulement s'il n'est pas immédiatement précédé d'un point.

Les ancrages

^
Correspond au début de la chaîne.
$
Correspond à la fin de la chaîne.
(modèle)
Correspond au modèle et mémorise la correspondance. La sous-chaîne correspondante peut être extraite de la collection obtenue, à l'aide d'Item [0]...[n]. Pour trouver des correspondances avec des caractères entre parenthèses ( ), utilisez "\(" ou "\)".
\b
Correspond à une limite représentant un mot, autrement dit, à la position entre un mot et un espace.
Par exemple, "er\b" correspond à "er" dans "lever", mais pas à "er" dans "verbe".
\B
Correspond à une limite ne représentant pas un mot.
"en*t\B" correspond à "ent" dans "bien entendu".

Les modificateurs

i
insensibilité à la casse. Pas de différence entre majuscules / minuscules.
s
simple ligne. Le point reconnaîtra n'importe quel caractère, y compris les nouvelles lignes \n.
m
multi ligne. Avec ce moddicateur, ^et $ correspondront aux caractères suivant et précédent immédiatement un caractère de nouvelle ligne, en plus du début et de la fin de la chaîne.
e
evalue. Avec cette option, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche.

Voir http://www.manuelphp.com/php/reference.pcre.pattern.modifiers.php.

Vérifier si une phrase contient certains mots et pas d'autres

On utilisera pour cela les test avant positifs (?=modèle) et les tests avant négatifs (?!modèle).

Ainsi, le modèle ^(?=.*location)(?=.*chambre)(?!.*bruxelles).*$ permet de tester la présence de location et chambre mais pas bruxelles.

Le modèle ^(?=.*(location|louer))(?=.*(chambre|studio))(?!.*(paris|bruxelles)).*$ permet de tester la présence de location ou louer ainsi que chambre ou studio mais pas paris ni bruxelles.

Valid XHTML 1.0Strict Valid CSS

AccueilPage précédenteHaut de pagePage suivante