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,
iindique 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 | |
| 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 ) | |
| 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 | |
| [^abc] | Trouver tout caractère NON compris entre les crochets | |
| [a-z] | Trouver tout caractère alphabétiquement entre deux lettres | |
| [A-z] | Trouver tout caractère alphabétiquement entre une lettre majuscule spécifiée et une lettre minuscule spécifiée | |
| [A-Z] | Trouver tout caractère alphabétiquement entre deux lettres majuscules. | |
| [123] | Trouver un ou plusieurs des chiffres à l'intérieur des crochets | |
| [0-5] | Trouver tous les chiffres compris entre les deux nombres | |
| [0-9] | Trouver tous les chiffres |
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 | |
| . | Trouver tout caractère | |
| ^ | Trouver une correspondance au début d'une chaîne comme dans : ^Bonjour | |
| $ | Trouver une correspondance à la fin de la chaîne comme dans : Monde$ | |
| \d | Trouver tous les chiffres | |
| \D | Trouver tous les caractères non numériques | |
| \s | Trouver tout caractère d'espace blanc | |
| \S | Trouver tout caractère non blanc | |
| \w | Trouver toute lettre alphabétique (a à Z) et chiffre (0 à 9) | |
| \W | Trouver tout caractère non alphabétique et non numérique | |
| \b | Trouver une correspondance au début d'un mot comme ceci : \bMOT, ou à la fin d'un mot comme ceci : MOT\b | |
| \uxxxx | Trouver le caractère Unicode spécifié par le nombre hexadécimal xxxx |
Quantificateurs
Les quantificateurs définissent des quantités :
| Quantificateur | Description | Essayez-le |
|---|---|---|
| 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 { 3 } | Correspond à toute chaîne contenant une séquence de 3 n 's | |
| n { 2 , 5 } | Correspond à toute chaîne contenant une séquence d'au moins 2, mais pas plus de 5 n 's | |
| n {3,} | Correspond à toute chaîne contenant une séquence d'au moins 3 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 = '/\?+/';