Expressions régulières en PHP


Expressions régulières en PHP

Une expression régulière est une séquence de caractères qui forme un motif de recherche. Lorsque vous recherchez des données dans un texte, vous pouvez utiliser ce motif pour décrire ce que vous cherchez.

Une expression régulière peut être un seul caractère ou un motif plus complexe.

Les expressions régulières peuvent être utilisées pour effectuer tous types d'opérations de recherche et de remplacement de texte.


Syntaxe des expressions régulières

En PHP, les expressions régulières sont des chaînes composées de délimiteurs, d'un motif et de modificateurs optionnels.

Syntaxe

 "/motif/modificateurs" 
  • délimiteurs - caractères qui entourent le motif (par exemple, / )
  • motif - la séquence de caractères à rechercher
  • modificateurs - comment la recherche est effectuée (par exemple, i indique une recherche insensible à la casse)

Regardez l'expression régulière suivante :

$exp = "/formation-ti.org/i"; 

Ici, / est le délimiteur , formation-ti.org est le motif à rechercher, et i est un modificateur qui rend la recherche insensible à la casse.

Le délimiteur peut être n'importe quel caractère qui n'est pas une lettre, un chiffre, un antislash ou un espace. Le délimiteur le plus courant est la barre oblique (/), mais lorsque votre motif contient des barres obliques, il est pratique de choisir d'autres délimiteurs comme # ou ~.



Modificateurs des expressions régulières

Les modificateurs spécifient comment la recherche est effectuée.

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

Motifs des expressions régulières

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

Expression Description Essayez-le
[abc] Trouver un ou plusieurs des caractères à l'intérieur des crochets Essayez-le »
[^abc] Trouver tout caractère NON compris entre les crochets Essayez-le »
[a-z] Trouver tout caractère alphabétiquement entre deux lettres Essayez-le »
[A-z] Trouver tout caractère alphabétiquement entre une lettre majuscule spécifiée et une lettre minuscule spécifiée Essayez-le »
[A-Z] Trouver tout caractère alphabétiquement entre deux lettres majuscules. Essayez-le »
[123] Trouver un ou plusieurs des chiffres à l'intérieur des crochets Essayez-le »
[0-5] Trouver tous les chiffres compris entre les deux nombres Essayez-le »
[0-9] Trouver tous les chiffres Essayez-le »

Métacaractères

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

Métacaractère Description Essayez-le
| Trouver une correspondance pour l'un des motifs séparés par | comme dans : chat|chien|poisson Essayez-le »
. Trouver tout caractère Essayez-le »
^ Trouver une correspondance au début d'une chaîne comme dans : ^Bonjour Essayez-le »
$ Trouver une correspondance à la fin de la chaîne comme dans : Monde$ Essayez-le »
\d Trouver tous les chiffres Essayez-le »
\D Trouver tous les caractères non numériques Essayez-le »
\s Trouver tout caractère d'espace blanc Essayez-le »
\S Trouver tout caractère non blanc Essayez-le »
\w Trouver toute lettre alphabétique (a à Z) et chiffre (0 à 9) Essayez-le »
\W Trouver tout caractère non alphabétique et non numérique Essayez-le »
\b Trouver une correspondance au début d'un mot comme ceci : \bMOT, ou à la fin d'un mot comme ceci : MOT\b Essayez-le »
\uxxxx Trouver le caractère Unicode spécifié par le nombre hexadécimal xxxx Essayez-le »

Quantificateurs

Les quantificateurs définissent des quantités :

Quantificateur Description Essayez-le
n + Correspond à toute chaîne contenant au moins un n Essayez-le »
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 { 3 } Correspond à toute chaîne contenant une séquence de 3 n 's Essayez-le »
n { 2 , 5 } Correspond à toute chaîne contenant une séquence d'au moins 2, mais pas plus de 5 n 's Essayez-le »
n {3,} Correspond à toute chaîne contenant une séquence d'au moins 3 n 's Essayez-le »

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