preg_match
(PHP 3>= 3.0.9, PHP 4 )
preg_match -- Reguláris kifejezést illeszt a megadott szövegre
Leírás
int
preg_match ( string pattern, string subject [, array matches [, int flags]])
A subject szövegben egyezést keres a
pattern mintában megadott reguláris kifejezéssel.
A matches paraméterrel meghívva a keresés
végeredményét ebbe a tömbbe tárolja el a függvény. A $matches[0]
tartalmazza azt a szövegrészt, ami a teljes mintára illeszkedett, és a
további elemek ($matches[1] és így tovább) azokat, amelyek a tömbindex
szerinti "gyűjtő" részmintákra illeszkedtek.
A flags paraméter az alábbi értékeket veheti fel::
- PREG_OFFSET_CAPTURE
Minden egyezéshez az egyezés kezdőpozicióját is visszaadja az
eredményben. Ez maga után vonja, hogy a visszaadott tömb minden eleme
olyan tömb lesz, amelynek a 0. indexe az illeszkedő
szöveget tartalmazza, míg az 1. indexen levő elem
ennek a subject-en belüli kezdőpozicióját. Ez
a jelzőbit PHP 4.3.0 verziójától használható.
A preg_match() a pattern talált
egyezések számával tér vissza, azaz 0-val, ha nem volt egyezés, vagy 1-gyel,
mert a preg_match() az első egyezés után megáll. A
preg_match_all() függvény ellenben a
subject végéig folytatja a keresést és az illesztést.
A preg_match() FALSE-t ad vissza hiba esetén.
Példa 1. A "php" sztring keresése // az "i" a minta határolójele után azt jelzi,
// hogy a kis- és nagybetűkre közömbös a keresés.
if (preg_match ("/php/i", "PHP a web-scripting nyelvek egyike.")) {
print "A minta passzol.";
} else {
print "A minta nem passzol.";
} |
|
Példa 2. A "web" szó keresése // a mintában a \b szóhatárt jelöl, ezért csak a különálló
// "web" szavakra fog illeszkedni, és szórészletekre
// úgymint "webbing" vagy "cobweb" pedig nem.
if (preg_match ("/\bweb\b/i", "PHP a web scripting nyelvek egyike."))
{
print "A minta passzol.";
} else {
print "A match nem passzol.";
}
if (preg_match ("/\bweb\b/i", "PHP a website scripting nyelvek egyike.")) {
print "A minta passzol.";
} else {
print "A match nem passzol.";
} |
|
Példa 3. domain-név kinyerése URL-ből // gazdagép neve az URL-ből
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$host = $matches[2];
// a gazdagépnév utolsó két része
preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
echo "A domain név : ".$matches[0]."\n"; |
|
Ez a példa a következőt eredményezi:
Lásd még: preg_match_all(),
preg_replace() és
preg_split()!