Expressions régulières en PHP : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Expressions régulières en PHP : un outil puissant pour travailler avec le texte



Les expressions régulières (regex) sont des séquences de caractères définissant un modèle pour la recherche et la manipulation de chaînes. En PHP, elles sont implémentées via la bibliothèque PCRE (Perl Compatible Regular Expressions) et offrent aux développeurs des possibilités flexibles pour la validation de données, l'analyse de texte et le remplacement de sous-chaînes. Dans cet article, nous allons examiner les fonctions principales, la syntaxe et des exemples pratiques d'utilisation des expressions régulières en PHP.



Fonctions PHP principales pour travailler avec les expressions régulières



En PHP, il existe plusieurs fonctions clés qui permettent de travailler avec les expressions régulières. Examinons les plus importantes.



preg_match() — recherche de la première correspondance



La fonction preg_match() recherche la première correspondance avec le modèle dans une chaîne. Elle retourne 1 si une correspondance est trouvée, 0 sinon, et FALSE en cas d'erreur.



<?php$text = "Mon email : example@mail.com et test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

if (preg_match($pattern, $text, $matches)) { echo "Email trouvé : " . $matches[0]; // Affichera : Email trouvé : example@mail.com}?>


preg_match_all() — recherche de toutes les correspondances



Contrairement à preg_match(), cette fonction trouve toutes les correspondances dans une chaîne et les place dans un tableau multidimensionnel.



<?php$text = "Mon email : example@mail.com et test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

preg_match_all($pattern, $text, $matches);print_r($matches[0]);// Affichera : Array ( [0] => example@mail.com [1] => test@domain.org )?>


preg_replace() — remplacement selon un modèle



La fonction preg_replace() remplace toutes les correspondances avec le modèle par la chaîne spécifiée. Elle prend en charge les références arrière et les modificateurs.



<?php$text = "Aujourd'hui 15.03.2024, et demain sera 16.03.2024";$pattern = "/(\\d{2})\\.(\\d{2})\\.(\\d{4})/";$replacement = "$3-$2-$1";

echo preg_replace($pattern, $replacement, $text);// Affichera : Aujourd'hui 2024-03-15, et demain sera 2024-03-16?>


preg_split() — division d'une chaîne selon un modèle



La fonction preg_split() divise une chaîne en un tableau selon le modèle spécifié. C'est un analogue de explode(), mais avec le support des expressions régulières.



<?php$text = "pomme, poire; banane : orange";$pattern = "/[,;: ]+/";

$fruits = preg_split($pattern, $text);print_r($fruits);// Affichera : Array ( [0] => pomme [1] => poire [2] => banane [3] => orange )?>


Syntaxe des expressions régulières



Les expressions régulières en PHP sont placées entre délimiteurs (généralement des barres obliques /) et peuvent contenir des modificateurs après le délimiteur de fermeture. Examinons les éléments principaux de la syntaxe.



Métacaractères et quantificateurs



  • Classes de caractères : . (n'importe quel caractère), \\d (chiffre), \\w (lettre, chiffre, souligné), \\s (caractère d'espacement)
  • Quantificateurs : * (0 ou plus), + (1 ou plus), ? (0 ou 1), {n,m} (de n à m)
  • Ancres : ^ (début de chaîne), $ (fin de chaîne), \\b (limite de mot)
  • Groupement : () (capture de groupe), (?:) (groupe non capturant)
  • Alternative : | (OU logique)


Modificateurs de modèles



  • i — recherche insensible à la casse
  • m — mode multiligne (^ et $ fonctionnent pour chaque ligne)
  • s — le métacaractère . inclut le saut de ligne
  • u — support Unicode (obligatoire pour travailler avec

Blogs

Book Recommendations