Pitanja
Gde mogu da testiram šablon?
Regex tester ističe podudaranja uživo, izlistava grupe, prikazuje pregled zamene i objašnjava šablon token po token.
Sintaksa zajednička svim glavnim engine-ima, sa razlikama u jednoj tabeli na kraju.
| ^ $ | početak / kraj teksta (reda sa zastavicom m) |
| \A \z \Z | početak / kraj teksta bez obzira na zastavice (nema u JS-u) |
| \b \B | granica reči / nije granica |
| . | bilo koji znak osim novog reda (bilo koji sa zastavicom s) |
| \d \w \s | cifra, znak reči, belina; \D \W \S negiraju |
| [abc] [a-z] [^abc] | skup, opseg, negirani skup |
| [\]\\^-] | unutar skupa samo ] \ ^ - traže eskejp |
| \t \n \r \xHH \uHHHH | tab, novi red, CR, heks, Unicode |
| \p{L} \p{Lu} \p{N} \p{Script=Cyrillic} | Unicode svojstva (zastavica u u JS-u) |
| [[:alpha:]] [[:digit:]] | POSIX klase (grep, PCRE; ne JS) |
| \. \* \( \\ | eskejpovan metaznak = doslovan |
| * + ? | 0+, 1+, 0 ili 1 |
| {n} {n,} {n,m} | tačno, najmanje, između |
| *? +? ?? {n,m}? | lenji: što manje |
| *+ ++ ?+ | posesivni: bez backtracking-a (PCRE, Java) |
| (abc) | hvatanje, numerisano od 1 |
| (?:abc) | bez hvatanja |
| (?<name>abc) | imenovana (Python: (?P<name>…)) |
| \1 \k<name> | povratna referenca (Python: (?P=name)) |
| a|b | alternacija (najniži prioritet) |
| (?>abc) | atomska grupa (PCRE, Java) |
| (?i)abc (?i:abc) | inline zastavica, inline zastavica sa opsegom |
| (?=x) | iza sledi x |
| (?!x) | iza ne sledi x |
| (?<=x) | ispred je x |
| (?<!x) | ispred nije x |
| g | sva podudaranja (JS, PHP kroz funkciju) |
| i | ignoriši velika i mala slova |
| m | ^ $ se podudaraju na prelomima redova |
| s | . podudara i novi red (DOTALL) |
| x | ignoriši beline i # komentare u šablonu (PCRE, Python; ne JS) |
| u | Unicode (JS); potreban za \p{} |
| y | sticky (JS) |
| $1 $<name> $& | JS, .NET: grupa, imenovana, celo podudaranje |
| \1 \g<name> | Python re.sub |
| $1 \1 ${name} | PCRE / PHP preg_replace; Go koristi $1 i ${name} |
| sed 's/(a)(b)/\2\1/' | sed -E (osnovni sed traži \( \)) |
| ^\s*$ | prazan red |
| \s+$ | belina na kraju reda |
| \b(?:\d{1,3}\.){3}\d{1,3}\b | IPv4 (labavo) |
| [\w.+-]+@[\w-]+(?:\.[\w-]+)+ | imejl (praktično) |
| https?://[^\s"'<>]+ | URL |
| \d{4}-\d{2}-\d{2} | ISO datum |
| #(?:[0-9a-fA-F]{3}){1,2}\b | heks boja |
| "(?:[^"\\]|\\.)*" | string pod dvostrukim navodnicima sa eskejpovima |
| ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$ | lozinka sa cifrom, malim, velikim slovom, 8+ |
| (\w+)\s+\1 | ponovljena reč |
| JavaScript | nema \A \z, nema zastavice x, nema posesivnih/atomskih; lookbehind da; imenovane grupe (?<n>) |
| PCRE (PHP, nginx, HAProxy) | sve; graničnici /…/ u PHP-u |
| Python re | (?P<n>), bez posesivnih pre 3.11, \Z = kraj |
| Go RE2, Rust regex | linearno vreme; bez lookaround-a, bez povratnih referenci |
| grep -E / sed -E | ERE: nema \d (koristite [0-9]), POSIX klase, nema lenjih kvantifikatora |
| grep (osnovni) | \( \) \{ \} \+ \? eskejpovani da bi bili specijalni |
| Java | posesivni, atomski; stringovi traže dvostruke obrnute kose crte |
Rezultati i poruke ovog alata prikazuju se na engleskom.
Regex tester ističe podudaranja uživo, izlistava grupe, prikazuje pregled zamene i objašnjava šablon token po token.