Regulární výrazy: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
(Tabulka)
(Přehled: třídy znaků)
Řádka 7: Řádka 7:
 
! Základní
 
! Základní
 
! Rozšířený
 
! Rozšířený
! Význam
+
! Popis
 
|-
 
|-
 
| align=center | <code>.</code>
 
| align=center | <code>.</code>
Řádka 62: Řádka 62:
 
|}
 
|}
  
 +
Seznam tříd znaků podle POSIXu a Perlu:
 +
 +
:{| class="wikitable"
 +
|-
 +
! POSIX !! Perl !! ASCII !! Popis
 +
|-
 +
| <code>[:alnum:]</code>
 +
|
 +
| <code>[A-Za-z0-9]</code>
 +
| Alfanumerické znaky
 +
|-
 +
| <code>[:word:]</code>
 +
| <code>\w</code>
 +
| <code>[A-Za-z0-9_]</code>
 +
| Alfanumerické znaky plus "_"
 +
|-
 +
|
 +
| <code>\W</code>
 +
| <code>[^\w]</code>
 +
| Znaky netvořící slova
 +
|-
 +
| <code>[:alpha:]</code>
 +
|
 +
| <code>[A-Za-z]</code>
 +
| Alfabetické znaky
 +
|-
 +
| <code>[:blank:]</code>
 +
|
 +
| <code>[ \t]</code>
 +
| Mezera a tabelátor
 +
|-
 +
| <code>[:cntrl:]</code>
 +
|
 +
| <code>[\x00-\x1F\x7F]</code>
 +
| Řídící znaky
 +
|-
 +
| <code>[:digit:]</code>
 +
| <code>\d</code>
 +
| <code>[0-9]</code>
 +
| Čísla
 +
|-
 +
|
 +
| <code>\D</code>
 +
| <code>[^\d]</code>
 +
| Nečíselné znaky
 +
|-
 +
| <code>[:graph:]</code>
 +
|
 +
| <code>[\x21-\x7E]</code>
 +
| Viditelné znaky
 +
|-
 +
| <code>[:lower:]</code>
 +
|
 +
| <code>[a-z]</code>
 +
| Malá písmena
 +
|-
 +
| <code>[:print:]</code>
 +
|
 +
| <code>[\x20-\x7E]</code>
 +
| Viditelné znaky a mezery
 +
|-
 +
| <code>[:punct:]</code>
 +
|
 +
| <code><nowiki>[-!"#$%&'()*+,./:;<=>?@\[\\\]_`{|}~]</nowiki></code>
 +
| Speciální znaky
 +
|-
 +
| <code>[:space:]</code>
 +
| <code>\s</code>
 +
| <code>[ \t\r\n\v\f]</code>
 +
| Bílé znaky (mezery atp.)
 +
|-
 +
| <code></code>
 +
| <code>\S</code>
 +
| <code>[^\s]</code>
 +
| Znaky, které nejsou bílými znaky
 +
|-
 +
| <code>[:upper:]</code>
 +
|
 +
| <code>[A-Z]</code>
 +
| Velká písmena
 +
|-
 +
| <code>[:xdigit:]</code>
 +
|
 +
| <code>[A-Fa-f0-9]</code>
 +
| Hexadecimální čísla
 +
|}
  
 
== Externí odkazy ==
 
== Externí odkazy ==
 
* http://www.root.cz/clanky/regularni-vyrazy-1/ &ndash; série 5 dílů
 
* http://www.root.cz/clanky/regularni-vyrazy-1/ &ndash; série 5 dílů

Verze z 8. 12. 2009, 16:42

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

Seznam základních a rozšířených POSIXových regulárních výrazů:

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)

Seznam tříd 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