preg_match
(PHP 4, PHP 5)
preg_match — Reguláris kifejezést illeszt a megadott szövegre
LeÃrás
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.
Example#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.";
}
Example#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.";
}
Example#3 domain-név kinyerése URL-ből
// gazdagép neve az URL-ből
preg_match("/^(http:\/\/)?([^\/]+)/i",
"https://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";
A domain név : php.net
Lásd még: preg_match_all(), preg_replace() és preg_split()!