preg_match
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
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()!