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 = '/\?+/';