Regulární výrazy

Z Milan Kerslager
Verze z 8. 12. 2009, 16:49, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Přehled: cap)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Regulární výrazy slouží pro obecný popis textových řetězců. Rozdělují se na regulární výrazy podle normy POSIX a podle jazyka Perl. Využívají se při zpracování textů (hledání, nahrazování), kontrole vstupu (rodné číslo, URL, e-mailová adresa, ...). Jejich podporu nalezneme přímo v některých programovacích jazycích (Perl, Python), používají je unixové nástroje (příkaz grep), jsou k dispozici v podobě knihoven atd.

Přehled

Základní a rozšířené POSIXové regulární výrazy
Základní Rozšířený Popis
. Jakýkoliv 1 znak (i žádný znak)
[abc] Jeden z uvedených znaků
[^abc] Žádný z uvedených znaků
[c..e] Jeden z rozsahu uvedených znaků (zde c, d nebo e)
^ Začátek řádku (řetězce)
$ Konec řádku (řetězce)
\( \) ( ) Skupina znaků (zapamatovatelná)
* Libovolné opakování předchozího znaku (skupiny), i žádné (0 krát)
\n Zapamatovaná skupina číslo n
\{m,n\} {m,n} Opakování předchozího znaku (skupiny) mn krát
? Žádný nebo jednonásobný výskyt předchozího znaku (skupiny)
+ Jedno- nebo vícenásobné opakování předchozího znaku (skupiny)
| Vyznačení variant (logická spojka nebo)
Třídy znaků podle POSIXu a Perlu
POSIX Perl ASCII Popis
[:alnum:] [A-Za-z0-9] Alfanumerické znaky
[:word:] \w [A-Za-z0-9_] Alfanumerické znaky plus "_"
\W [^\w] Znaky netvořící slova
[:alpha:] [A-Za-z] Alfabetické znaky
[:blank:] [ \t] Mezera a tabelátor
[:cntrl:] [\x00-\x1F\x7F] Řídící znaky
[:digit:] \d [0-9] Čísla
\D [^\d] Nečíselné znaky
[:graph:] [\x21-\x7E] Viditelné znaky
[:lower:] [a-z] Malá písmena
[:print:] [\x20-\x7E] Viditelné znaky a mezery
[:punct:] [-!"#$%&'()*+,./:;<=>?@\[\\\]_`{|}~] Speciální znaky
[:space:] \s [ \t\r\n\v\f] Bílé znaky (mezery atp.)
\S [^\s] Znaky, které nejsou bílými znaky
[:upper:] [A-Z] Velká písmena
[:xdigit:] [A-Fa-f0-9] Hexadecimální čísla

Externí odkazy