Forum und email

Reguláris kifejezések függvényei (Perl kompatibilis)

Bevezetés

Ezekben a függvényekben használatos minták szintaktikája nagyon hasonlít a PERL-ben megismerthez. A kifejezéseket határolójelek közé kell rakni, például perjelek / közé. Az alfanumerikus karakterektől és a visszaperjeltől (\) eltekintve bármi használható határolójelként. Ha a határolójel magában a kifejezésben is szerepel, akkor egy visszaperjelet (\) kell eléírni. A PHP 4.0.4-s verziójától kezdve lehetőség van a (), {}, [], és <> párban álló határolók használatára, ahogy Perl-ben is. További információk a Minta Szintaxis oldalon olvashatók.

A lezáró határolójelet különféle módosítók követhetik, amelyek a mintailleszkedést befolyásolják. Bővebben: Minta módosítók fejezet.

PHP a kiterjesztett POSIX reguláris kifejezéseket is támogatja.

Warning

Érdemes átolvasni a » https://www.pcre.org/pcre.txt oldalt is, mivel a PCRE bizonyos korlátaival jó tisztában lenni.

Követelmények

A reguláris kifejezések támogatását a PCRE könyvtár biztosítja. Ez nyílt forráskódú szoftver, amit Philip Hazel írt, és a szerzői jogok az angliai Cambridge Egyetem tulajdona. A csomag hozzáférhető a » ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ címen.

Telepítés

Beginning with PHP 4.2.0 these functions are enabled by default. You can disable the pcre functions with --without-pcre-regex. Use --with-pcre-regex=DIR to specify DIR where PCRE's include and library files are located, if not using bundled library. For older versions you have to configure and compile PHP with --with-pcre-regex[=DIR] in order to use these functions.

A PHP Windows-os változata beépített támogatással rendelkezik eme kiterjesztéshez. Nincs szükség semmilyen kiterjesztés betöltésére, hogy az itt felsorolt függvényeket használhasd.

Futásidejű beállítások

Ez a kiterjesztés semmilyen konfigurációs beállításokat nem definiál a php.ini állományban.

Erőforrás típusok

Ez a kiterjesztés semmilyen erőforrás típust nem definiál.

Előre definiált állandók

Az itt listázott állandókat ez a kiterjesztés definiálja, és csak akkor elérhetőek, ha az adott kiterjesztés be van fordítva a PHP-be, vagy dinamikusan betöltött.

PREG állandók
állandó leírás
PREG_PATTERN_ORDER Azt eredményezi, hogy a $matches[0] olyan tömb lesz, ahol az összes a teljes mintára illeszkedő szövegrész lesz egymás után, a $matches[1] tömbben pedig azok a szövegrészek, amelyek első "gyűjtő" részmintára illeszkednek, és így tovább. Ezt a preg_match_all() függvény paramétereként lehet használni.
PREG_SET_ORDER Azt eredményezi, hogy $matches[0]-ben az első illesztés eredményeit, a $matches[1] a másodikét fogja tartalmazni, és így tovább. Ezt a preg_match_all() függvény paramétereként lehet használni.
PREG_OFFSET_CAPTURE Lásd a PREG_SPLIT_OFFSET_CAPTURE állandót! Ez a PHP 4.3.0 verziójától használható.
PREG_SPLIT_NO_EMPTY Ennek hatására csak és kizárólag a nem üres elemeket adja vissza a preg_split() függvény eredményül.
PREG_SPLIT_DELIM_CAPTURE Ekkor a kerekzárójelek közé fogott ("gyűjtő") részmintára illeszkedő szövegrészeket is visszadja a preg_split() függvény. Ez a jelző a PHP 4.0.5 verziójától használható.
PREG_SPLIT_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ó.

Példák

Example#1 Példák érvényes mintákra

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Example#2 Példák helytelen mintákra

  • /href='(.*)' - hiányzó lezáró határolókarakter
  • /\w+\s*\w+/J - ismeretlen módosító 'J'
  • 1-\d3-\d3-\d4| - hiányzó kezdő határolókarakter

Table of Contents

  • Pattern Modifiers — Describes possible modifiers in regex patterns
  • Pattern Syntax — Describes PCRE regex syntax
  • preg_grep — Visszaadja azokat a tömbelemeket, amelyek illeszkednek a mintára
  • preg_last_error — Returns the error code of the last PCRE regex execution
  • preg_match_all — Reguláris kifejezés teljeskörű illesztését végzi
  • preg_match — Reguláris kifejezést illeszt a megadott szövegre
  • preg_quote — Reguláris kifejezés metakaraktereit literálissá változtatja
  • preg_replace_callback — Reguláris kifejezés alapján keres és a megadott függvényt meghívva végzi a cserét
  • preg_replace — Reguláris kifejezés alapján keres és cserél
  • preg_split — Sztringet darabol fel reguláris kifejezésre illeszkedő részei mentén