PHP kézikönyv
Előző |  | Következő

# 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:

    A domain név : php.net

Lásd még: preg_match_all(), preg_replace() és preg_split()!

Előző | Tartalom | Következő
preg_match_all | Fel | preg_quote