Services webmasters
Partenaires
Jeux concours gratuits
 
preg_match_all
<<<
preg_match preg_quote
>>>

7.89 Expressions régulières compatibles Perl
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Exemples
options de recherche
syntaxe des masques
preg_grep
preg_match_all
->preg_match
preg_quote
preg_replace_callback
preg_replace
preg_split

7.89.12 preg_match()Expression régulière standard

[ Exemples avec preg_match ]   PHP 3>= 3.0.9, PHP 4

int  preg_match ( string   pattern , string   subject , array   matches , int   flags )

preg_match analyse subject pour trouver l'expression pattern .

Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc..

Le paramètre flags peut prendre l'une des valeurs suivantes :

    PREG_OFFSET_CAPTURE
    Si cette option est activée, toutes les sous chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée , puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat, à l'index 0 dans la chaîne subject constant 1 . Cette option a été ajoutée en PHP 4.3.0 .
Le paramètre flags a été ajouté en PHP 4.3.0 .

preg_match retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solutioon) à un 1 car preg_match s'arrête dès qu'il a trouvé une première solution. preg_match_all , au contraire, va continue jusqu'à la fin de la chaîne subject . preg_match retourne FALSE si une erreur survient.

Extraction d'un numéro de page d'une chaîne.

<?php
if (preg_match("/page\s+#(\d+)/i", "Aller à la page numéro 9.", $parts))
    print
"La page suivante est $parts[1]";
else
    print
"Page introuvable.";
?>
Trouve le mot "web"

<?php
// \b, dans le masque, indique une limite de mot, de façon à ce que le mot
// "web" uniquement soit repéré, et pas seulement des parties de mots comme
// dans "webbing" ou "cobweb"
if (preg_match ("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) {
    print
"Un mot a été trouvé.";
} else {
    print
"Un mot n'a pas été trouvé.";
}
if (
preg_match ("/\bweb\b/i", "PHP est le meilleur langage de script pour les webagency.")) {
     print
"Un mot a été trouvé.";
} else {
    print
"Un mot n'a pas été trouvé.";
}
?>
Lire un nom de domaine dans une URL

<?php
// repérer le nom de l'hôte dans l'URL
  
preg_match("/^(http:\/\/)?([^\/]+)/i",
             
"http://www.php.net/index.php", $matches);
  
$host = $matches[2];
// repérer les deux derniers segments du nom de l'hôte
  
preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
  echo
"Le nom de domaine est : ".$matches[0]."\n";
?>
Cet exemple va afficher :
Le nom de domaine est : php.net

Voir aussi preg_match_all , preg_replace et preg_split .

<< preg_match >>
preg_match_all Expressions régulières compatibles Perl preg_quote
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -