preg_match

preg_match -- Expression régulière standard.

Description

int preg_match ( string pattern, string subject [, array matches])

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

preg_match( ) retourne TRUE si la recherche réussit , et FALSE sinon (notamment en cas d'erreur ) .

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

 
."

 
;

 
?



Exemple 2 . 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é

 
."

 
;

 
}

 
?



Exemple 3 . 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.html"

 
,

 
$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() .