PHP preg_match() : expressions régulières (Regex)
⚡ Résumé intelligent
Les expressions régulières en PHP sont des outils de correspondance de motifs qui permettent de valider, de découper et de remplacer du texte en une seule expression. Ce guide aborde les fonctions principales `preg_match`, `preg_split` et `preg_replace`, explique les métacaractères courants et construit pas à pas un modèle de validation d'adresse e-mail fonctionnel.

Qu'est-ce qu'une expression régulière en PHP ?
Expressions régulières PHPLes expressions régulières, également appelées regex, sont un outil puissant de correspondance de modèles qui peut être réalisé en une seule expression. Elles utilisent des caractères spéciaux tels que +, - et ^ pour créer des expressions complexes. Elles peuvent vous aider à accomplir des tâches comme la validation d'adresses e-mail, d'adresses IP, etc.
Pourquoi utiliser des expressions régulières
- Les expressions régulières PHP simplifient l'identification des motifs dans les chaînes de caractères en appelant une seule fonction, ce qui nous fait gagner du temps de programmation.
- Lors de la validation des données saisies par l'utilisateur, telles que les adresses électroniques, les noms de domaine, les numéros de téléphone et les adresses IP
- Mettre en évidence des mots-clés dans les résultats de recherche
- Lors de la création d'un modèle HTML personnalisé. Regex en PHP peut être utilisé pour identifier les balises de modèle et les remplacer par des données réelles.
Fonctions d'expression régulière intégrées en PHP
PHP intègre des fonctions permettant de manipuler les expressions régulières, que nous allons découvrir dans ce tutoriel. Examinons les fonctions d'expressions régulières les plus couramment utilisées en PHP.
- La fonction `preg_match()` en PHP permet de rechercher un motif dans une chaîne de caractères. Elle renvoie `true` si une correspondance est trouvée et `false` dans le cas contraire.
- preg_split() en PHP – cette fonction est utilisée pour effectuer une correspondance de motif sur une chaîne de caractères, puis diviser les résultats en un tableau numérique.
- preg_replace() en PHP – cette fonction est utilisée pour effectuer une correspondance de modèle sur une chaîne, puis remplacer la correspondance par le texte spécifié.
Vous trouverez ci-dessous la syntaxe d'une fonction d'expression régulière telle que preg_match(), preg_split() ou preg_replace().
<?php
function_name('/pattern/',subject);
?>
ICI,
- « function_name(…) » est soit preg_match(), preg_split(), soit preg_replace().
- « /…/ » : les barres obliques indiquent le début et la fin de notre expression régulière.
- « '/pattern/' » est le modèle que nous devons faire correspondre
- « sujet » est la chaîne de texte à comparer
Examinons maintenant des exemples pratiques qui mettent en œuvre les fonctions regex PHP ci-dessus.
Preg_match() en PHP
Le premier exemple utilise la fonction preg_match() pour effectuer une simple correspondance de motif pour le mot guru dans un texte donné. URL.
Le code ci-dessous illustre l'implémentation de la fonction preg_match() pour l'exemple ci-dessus.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Naviguez vers le URL http://localhost/phptuts/preg_match_simple.php
Examinons la partie du code responsable de notre résultat. preg_match('/guru/', $my_url). ICI,
- "preg_match(…)" est la fonction regex PHP
- « '/guru/' » est le modèle d'expression régulière à faire correspondre
- « $my_url » est la variable contenant le texte à comparer.
PHP Preg_split()
Examinons maintenant un autre exemple qui utilise la fonction preg_split().
Nous allons prendre une phrase de chaîne et la décomposer en un tableau ; le motif à faire correspondre est un espace unique.
La chaîne de texte à utiliser dans cet exemple est « I Love Regular Expressions ».
Le code ci-dessous illustre l'implémentation de l'exemple ci-dessus.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Naviguez vers le URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Examinons maintenant la fonction preg_replace() Fonction PHP qui effectue une correspondance de modèle, puis remplace le modèle par autre chose.
Le code ci-dessous recherche le mot gourou dans un string.
Il remplace le mot « gourou » par le mot « gourou » entouré de code CSS qui met en évidence la couleur de fond.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
Si vous avez enregistré le fichier preg_replace.php, accédez à URL http://localhost/phptuts/preg_replace.php
Métacaractères d'expression régulière
Les exemples précédents utilisaient des modèles très simples. Les métacaractères permettent d'effectuer des correspondances plus complexes, comme la vérification de la validité d'une adresse électronique. Examinons maintenant les métacaractères les plus couramment utilisés.
| Métacaractère | Description | Exemple |
|---|---|---|
| . | Correspond à n'importe quel caractère, à l'exception d'une nouvelle ligne | /./ correspond à tout ce qui a un seul caractère |
| ^ | Correspond au début d'une chaîne ou exclut les caractères | /^PH/ correspond à n'importe quelle chaîne commençant par PH |
| $ | Correspond à un motif à l'extrémité de la chaîne | /com$/ correspond à guru99.com, yahoo.com, etc. |
| * | Correspond à zéro ou plusieurs des caractères précédents | /com*/ correspond à un ordinateur, une communication, etc. |
| + | Exige que le ou les caractères précédents apparaissent au moins une fois. | /ouais+oo/ correspond à Yahoo |
| \ | Utilisé pour échapper aux métacaractères | /yahoo+\.com/ traite le point comme une valeur littérale |
| [...] | Classe de personnage | /[abc]/ correspond à a, b ou c |
| AZ | Correspond aux lettres minuscules | /az/ correspond à cool, happy etc. |
| A-Z | Correspond aux lettres majuscules | /AZ/ correspond à QUOI, COMMENT, POURQUOI, etc. |
| 0-9 | Correspond à n'importe quel nombre entre 0 et 9 | /0-4/ correspond à 0,1,2,3,4 |
La liste ci-dessus ne donne que les métacaractères les plus couramment utilisés dans les expressions régulières.
Examinons maintenant un exemple assez complexe qui vérifie la validité d'une adresse électronique.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
Explication du modèle de validation des adresses e-mail
ICI,
- « /…/ » encadre l'expression régulière.
- « ^[a-zA-Z0-9._-] » correspond à toutes les lettres minuscules ou majuscules, aux chiffres entre 0 et 9, ainsi qu’aux points, aux traits de soulignement ou aux tirets.
- « +@[a-zA-Z0-9-] » correspond au symbole @ suivi de lettres minuscules ou majuscules, de chiffres entre 0 et 9 ou de tirets.
- “+\.[a-zA-Z.]{2,5}$/” échappe le point en utilisant la barre oblique inverse, puis correspond à toutes les lettres minuscules ou majuscules avec une longueur de caractère comprise entre 2 et 5 à la fin de la chaîne.
Naviguez vers le URL http://localhost/phptuts/preg_match.php
Comme vous pouvez le constater dans le tableau ci-dessus, les métacaractères sont très puissants lorsqu'il s'agit de faire correspondre des modèles.




