Felhasználói eszközök

Eszközök a webhelyen


Oldalsáv

Index menü


Tagek listája

Szavak listája

tudasbazis:regexp

Reguláris kifejezés (regexp)

Metakarakterek (Metacharacters)

\ (escape karakter) – az utána következő metakarakterre illeszkedik pl.: \* csillag karakterre, \\ visszaper jelre
. (pont) – bármely, kivéve az új sor karakter
^ (kalap jel) – a minta kezdete
$ (dollár jel) – a minta vége
| (pipa) – logikai elágazás, előtte vagy utána levő kifejezés
[] (szögletes zárójel) – karakter osztály, a szögletes zárójelek közötti karakterek valamelyikeire bármilyen sorrendben illeszkedik
() (kerek zárójel) – csoportosítás, a kerek zárójelek közötti karakterekre pontos sorrendben illeszkedik
[^ab@] (tagadás a karakter osztályban) – bármi, kivéve a, b vagy @
[0-6] (karakter osztály tartomány) – 0 és 6 közötti számokra illeszkedik
[a-fA-F] (karakter osztály tartomány) – ASCII kis és nagy betűkre illeszkedik a-tól f-ig

Ismétlések (Quantifiers)

* (csillag) – a minta 0 vagy többszöri ismétlése
+ (plusz) – a minta 1 vagy többszöri ismétlése
? (kérdőjel) – a minta 0 vagy egyszeri ismétlése
{3} (intervallum) – a mintában pontosan három karakter lehet
{3,} (intervallum) – a mintában legalább három vagy több karakter lehet
{,3} (intervallum) – a mintában legfeljebb három karakter lehet
{1,4} (intervallum) – a mintában legalább egy, legfeljebb négy karakter lehet

Ismétlések lomhán (Quantifiers not greedily)

*? (csillag és kérdőjel) – a minta 0 vagy többszöri ismétlése (lomhán)
+? (plusz és kérdőjel) – a minta 1 vagy többszöri ismétlése (lomhán)
?? (kérdőjel és kérdőjel) – a minta 0 vagy egyszeri ismétlése (lomhán)
{3}? (intervallum és kérdőjel) – a mintában pontosan három karakter lehet (lomhán)
{3,}? (intervallum és kérdőjel) – a mintában legalább három vagy több karakter lehet (lomhán)
{,3}? (intervallum és kérdőjel) – a mintában legfeljebb három karakter lehet (lomhán)
{1,4}? (intervallum és kérdőjel) – a mintában legalább egy, legfeljebb négy karakter lehet (lomhán)

Ismétlések visszatérés nélkül (Quantifiers give nothing back)

*+ (csillag és plusz) – a minta 0 vagy többszöri ismétlése (visszatérés nélkül)
++ (plusz és plusz) – a minta 1 vagy többszöri ismétlése (visszatérés nélkül)
?+ (kérdőjel és plusz) – a minta 0 vagy egyszeri ismétlése (visszatérés nélkül)
{3}+ (intervallum és plusz) – a mintában pontosan három karakter lehet (visszatérés nélkül)
{3,}+ (intervallum és plusz) – a mintában legalább három vagy több karakter lehet (visszatérés nélkül)
{,3}+ (intervallum és plusz) – a mintában legfeljebb három karakter lehet (visszatérés nélkül)
{1,4}+ (intervallum és plusz) – a mintában legalább egy, legfeljebb négy karakter lehet (visszatérés nélkül)

Escape-szekvenciák (Escape sequences)

\t (HT, TAB) – tabulátor
\v (VT, TAB) – vertikális tabulátor
\n (LF, NL) – új sor
\r (CR) – kocsi vissza
\a (BEL) – csengő
\f (FF) – lapdobás
\e (ESC) – escape

Általános karakter osztályok (Generic Character Classes)

\d decimális szám
\D nem decimális szám, minden más
\s szóköz karakter
\S bármely más karakter a szóközön kívül
\w bármely szó
\W bármi, ami nem szó

Módosítók (Modifiers)

m (PCRE_MULTILINE) – a ^ és $ közötti több soros karakterlánc kezelése, belső sorokra illeszkedik
i (PCRE_CASELESS) – kis és nagy betű érzékenység kikapcsolása
s (PCRE_DOTALL) – csak egy sorra illeszkedik
x (PCRE_EXTENDED) – szóközök és megjegyzések figyelmen kívül hagyása a mintában
e a preg_replace() csereláncát PHP-kódként kezeli
g minden előfordulásra illeszkedik
u (PCRE_UTF8) – a mintát UTF–8 kódolású szövegnek tekinti
A csak a karakterlánc elején illeszkedik (PHP)
E csak a karakterlánc végén illeszkedik (PHP)
U a legkevesebb karaktert tartalmazó találatokat adja vissza (PHP)

Feltételek (Assertions)

\b szóhatár
\B bármi, kivéve szóhatár
\A csak a karakterlánc elején egyezik
\Z csak a karakterlánc vagy új sor végén egyezik
\z csak a karakterlánc végén egyezik

Másodlagos feltételek (Subassertions)

(?:bab) (nem emlékező zárójel) – illeszkedik a bab-ra, de nem emlékezik az illesztésre
bab(?=szem) illeszkedik a bab-ra, ha azt a szem követi
bab(?!szem) illeszkedik a bab-ra, ha azt nem a szem követi
(?#ez itt egy megjegyzés) (megjegyzés)
(?>\d+)bab teljesítmény növelés, ha a bab hiányzik
(?(3)bab|szem)jankó illeszkedik a bab-ra, ha a harmadik rész egyezik, különben a szem-re

Posix, Unicode, Perl, ASCII karakter osztályok

Posix Unicode Perl ASCII
betűk és számok [:alnum:] \p{IsAlnum} [a-zA-Z0-9]
betűk [:alpha:] \p{IsAlpha} [a-zA-Z]
0 és 127 kódok
közötti karakterek
[:ascii:] \p{IsASCII}
szóköz vagy tabulátor [:blank:] [ \t]
ellenőrző karakterek [:cntrl:] \p{IsCntrl} [\x00-\x1F\x7F]
decimális számok [:digit:] \p{IsDigit} \d [0-9]
nem decimális számok \D [^0-9]
nyomtatható karakterek, kivéve szóköz [:graph:] \p{IsGraph} [\x21-\x7E]
nyomtatható karakterek és szóköz [:print:] \p{IsPrint} [\x20-\x7E]
nyomtatható karakterek, kivéve betűk és számok [:punct:] \p{IsPunct} [-!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~]
szóköz [:space:] \p{IsSpace} \s [ \t\r\n\v\f]
szóköz (perl) \p{IsSpacePerl} \s
nem szóköz \S [^\s]
szó [:word:] \p{IsWord} \w [A-Za-z0-9_]
nem szó \W [^\w]
hexadecimális szám [:xdigit:] \p{IsXDigit} [A-Fa-f0-9]
kisbetűk [:lower:] \p{IsLower} [a-z]
nagybetűk [:upper:] \p{IsUpper} [A-Z]

PHP reguláris kifejezések függvényei

A PHP a reguláris kifejezések két fajtáját támogatja, a POSIX- és a Perl-kompatibiliseket.

POSIX függvények

A PHP az 5.3.0 verzió bevezetésével a POSIX függvényekre „Deprecated: Function ereg() is deprecated…” elavultságot jelző hibaüzenetet ad! A kódot Perl-kompatibilissá kell konvertálni.

ereg() egyezés vizsgálata
eregi() egyezés vizsgálata (kis és nagy betű érzéketlen)
ereg_replace() az egyezést a megadott szóra cseréli
eregi_replace() egyezést a megadott szóra cseréli (kis és nagy betű érzéketlen)
split() az egyezés alapján a karakterláncot tömb elemekre darabolja
spliti() az egyezés alapján a karakterláncot tömb elemekre darabolja (kis és nagy betű érzéketlen)

Perl-kompatibilis függvények

preg_filter keresés és csere
preg_match() egyezés vizsgálata
preg_match_all() egyezés vizsgálata globálisan (az első egyezés után folytatja a keresést)
preg_replace() az egyezést a megadott szóra cseréli
preg_replace_callback() az egyezést a megadott függvényt meghívásával cseréli
preg_split() egyezés alapján a karakterláncot tömb elemekre darabolja
preg_quote() az egyezés metakaraktereit literálissá változtatja
preg_grep() visszaadja azokat a tömbelemeket, amelyek illeszkednek a mintára
tudasbazis/regexp.txt · Utolsó módosítás: 2015.10.29 17:32 szerkesztette: tia