====== Reguláris kifejezés (regexp) ====== * http://intermatrix.hu/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 |