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
.
|