PHP Fonctions d'Expression Régulière


Introduction aux Expressions Régulières en PHP

Les expressions régulières vous permettent de rechercher et de remplacer des motifs dans des chaînes de caractères.


Installation

Les fonctions d'expressions régulières en PHP font partie du noyau de PHP. Aucune installation n'est requise pour les utiliser.


Configuration à l'Exécution

Ces paramètres dans le fichier php.ini peuvent être utilisés pour limiter le temps ou les ressources utilisés lors de l'évaluation des expressions régulières.

Nom Par défaut Description Modifiable
pcre.backtrack_limit "1000000" Le nombre maximum de retours en arrière que le moteur d'expressions régulières est autorisé à effectuer lors de l'évaluation d'une expression. (disponible depuis PHP 5.2) PHP_INI_ALL
pcre.recursion_limit "100000" La profondeur de récursion maximale que le moteur d'expressions régulières est autorisé à atteindre lors de l'évaluation d'une expression. (disponible depuis PHP 5.2) PHP_INI_ALL
pcre.jit "1" Lorsqu'il est défini sur "1", cela active la compilation juste-à-temps de PCRE (Expressions Régulières Compatibles Perl). (disponible depuis PHP 7.0) PHP_INI_ALL

Fonctions d'Expression Régulière en PHP

Fonction Description
preg_filter() Renvoie une chaîne ou un tableau avec des correspondances de motifs remplacées, mais uniquement si des correspondances ont été trouvées.
preg_grep() Renvoie un tableau ne contenant que les éléments du tableau d'entrée qui correspondent au motif.
preg_last_error() Renvoie un code d'erreur indiquant la raison pour laquelle le dernier appel d'expression régulière a échoué.
preg_match() Trouve la première correspondance d'un motif dans une chaîne.
preg_match_all() Trouve toutes les correspondances d'un motif dans une chaîne.
preg_replace() Renvoie une chaîne où les correspondances d'un motif (ou d'un tableau de motifs) sont remplacées par une sous-chaîne (ou un tableau de sous-chaînes) dans une chaîne donnée.
preg_replace_callback() Étant donné une expression et un rappel, renvoie une chaîne où toutes les correspondances de l'expression sont remplacées par la sous-chaîne renvoyée par le rappel.
preg_replace_callback_array() Étant donné un tableau associant des expressions à des rappels, renvoie une chaîne où toutes les correspondances de chaque expression sont remplacées par la sous-chaîne renvoyée par le rappel.
preg_split() Divise une chaîne en un tableau en utilisant les correspondances d'une expression régulière comme séparateurs.
preg_quote() Échappe les caractères ayant une signification spéciale dans les expressions régulières en plaçant un antislash devant eux.

Modificateurs d'Expression Régulière

Les modificateurs peuvent modifier la façon dont une recherche est effectuée.

Modificateur Description
i Effectue une recherche insensible à la casse.
m Effectue une recherche multilignes (les motifs qui recherchent le début ou la fin d'une chaîne correspondront au début ou à la fin de chaque ligne).
u Permet une correspondance correcte des motifs encodés en UTF-8.

Motifs d'Expression Régulière

Les crochets sont utilisés pour trouver une plage de caractères :

Expression Description
[abc] Trouve un caractère parmi les options entre les crochets.
[^abc] Trouve tout caractère NON compris entre les crochets.
[0-9] Trouve un caractère dans la plage de 0 à 9.

Métacaractères

Les métacaractères sont des caractères ayant une signification spéciale :

Métacaractère Description
| Trouve une correspondance pour l'un des motifs séparés par |, comme dans : chat|chien|poisson.
. Trouve juste une instance de n'importe quel caractère.
^ Trouve une correspondance au début d'une chaîne, comme dans : ^Bonjour.
$ Trouve une correspondance à la fin de la chaîne, comme dans : Monde$.
\d Trouve un chiffre.
\s Trouve un caractère d'espace blanc.
\b Trouve une correspondance au début d'un mot, comme ceci : \bMOT, ou à la fin d'un mot, comme ceci : MOT\b.
\uxxxx Trouve le caractère Unicode spécifié par le nombre hexadécimal xxxx.

Quantificateurs

Les quantificateurs définissent des quantités :

Quantificateur Description
n+ Correspond à toute chaîne contenant au moins un n .
n* Correspond à toute chaîne contenant zéro ou plusieurs occurrences de n .
n? Correspond à toute chaîne contenant zéro ou une occurrence de n .
n{x} Correspond à toute chaîne contenant une séquence de X n 's.
n{x,y} Correspond à toute chaîne contenant une séquence de X à Y n 's.
n{x,} Correspond à toute chaîne contenant une séquence d'au moins X n 's.

Remarque : Si votre expression doit rechercher l'un des caractères spéciaux, vous pouvez utiliser un antislash ( \ ) pour les échapper. Par exemple, pour rechercher un ou plusieurs points d'interrogation, vous pouvez utiliser l'expression suivante : $pattern = '/\?+/';