Effectuer des correspondances avec preg_match
Comparer des chaînes à des motifs et capturer des groupes.
Effectuer des correspondances avec preg_match est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
Signature de preg_match()
preg_match($pattern, $subject, &$matches) renvoie 1 si le motif correspond, 0 dans le cas contraire, ou false en cas d'erreur.
Vérification simple de correspondance
Utilisez preg_match comme vérification booléenne — la valeur de retour 1 signifie qu'une correspondance a été trouvée.
<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
echo "Looks like an email";
}Groupes de capture avec $matches
$matches[0] contient la correspondance complète ; $matches[1], $matches[2]... contiennent les groupes de capture.
<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"Captures nommées
Utilisez (?P<name>...) pour créer des groupes de capture nommés — accessibles via $matches["name"].
<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
'2025-06-15', $m);
echo $m['year']; // 2025Paramètre de décalage
Le quatrième paramètre indique à quel endroit de la chaîne commencer la correspondance (décalage en octets).
<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"PREG_OFFSET_CAPTURE
Obtenez à la fois la valeur de la correspondance et son décalage en octets.
<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)preg_match_all()
preg_match_all() trouve toutes les correspondances et renvoie leur nombre.
<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]Exemple de validation d'adresse e-mail
Une expression régulière pratique pour les adresses e-mail :
<?php
function isEmail(string $s): bool {
return (bool) preg_match(
'/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
$s
);
}Validation d'un numéro de téléphone
Validez les numéros de téléphone internationaux :
<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);Gestion des erreurs
Si le motif n'est pas valide, preg_match() renvoie false. Vérifiez avec === false et utilisez preg_last_error() pour obtenir des détails.
Conseil de performance
PHP met en cache en interne les motifs PCRE compilés — si vous utilisez la même expression régulière dans une boucle, aucune étape supplémentaire n'est nécessaire.
Quand ne pas utiliser les expressions régulières
Pour les données structurées, PHP propose des fonctions dédiées : filter_var(FILTER_VALIDATE_EMAIL), parse_url() — préférez-les aux expressions régulières écrites manuellement.
Vérification rapide
Que contient $matches[0] après l'appel à preg_match ?
Questions Fréquemment Posées
La leçon « Effectuer des correspondances avec preg_match » est-elle gratuite ?
Oui — le texte complet de « Effectuer des correspondances avec preg_match » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Effectuer des correspondances avec preg_match » ?
Comparer des chaînes à des motifs et capturer des groupes. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Effectuer des correspondances avec preg_match » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Principes fondamentaux de la syntaxe des expressions régulières
- Effectuer des correspondances avec preg_match
- Remplacer du texte avec preg_replace
- Découpage et motifs pratiques