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

Z Milan Kerslager
Přejít na: navigace, hledání
(Založení článku)
 
m (Přehled: cap)
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádka 1: Řádka 1:
 
'''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 <code>grep</code>), jsou k dispozici v podobě knihoven atd.
 
'''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 <code>grep</code>), jsou k dispozici v podobě knihoven atd.
 +
 +
== Přehled ==
 +
 +
:{| class=wikitable
 +
|+ '''Základní a rozšířené POSIXové regulární výrazy'''
 +
! Základní
 +
! Rozšířený
 +
! Popis
 +
|-
 +
| align=center | <code>.</code>
 +
| align=center |
 +
| Jakýkoliv 1 znak (i žádný znak)
 +
|-
 +
| align=center | <code>[abc]</code>
 +
| align=center |
 +
| Jeden z uvedených znaků
 +
|-
 +
| align=center | <code>[^abc]</code>
 +
| align=center |
 +
| Žádný z uvedených znaků
 +
|-
 +
| align=center | <code>[c..e]</code>
 +
| align=center |
 +
| Jeden z rozsahu uvedených znaků (zde c, d nebo e)
 +
|-
 +
| align=center | <code>^</code>
 +
| align=center |
 +
| Začátek řádku (řetězce)
 +
|-
 +
| align=center | <code>$</code>
 +
| align=center |
 +
| Konec řádku (řetězce)
 +
|-
 +
| align=center | <code>\( \)</code>
 +
| align=center | <code>( )</code>
 +
| Skupina znaků (zapamatovatelná)
 +
|-
 +
| align=center | <code>*</code>
 +
| align=center |
 +
| Libovolné opakování předchozího znaku (skupiny), i žádné (0 krát)
 +
|-
 +
| align=center | <code>\n</code>
 +
| align=center |
 +
| Zapamatovaná skupina číslo ''n''
 +
|-
 +
| align=center | <code>\{m,n\}</code>
 +
| align=center | <code>{m,n}</code>
 +
| Opakování předchozího znaku (skupiny) ''m'' až ''n'' krát
 +
|-
 +
| align=center |
 +
| align=center | <code>?</code>
 +
| Žádný nebo jednonásobný výskyt předchozího znaku (skupiny)
 +
|-
 +
| align=center |
 +
| align=center | <code>+</code>
 +
| Jedno- nebo vícenásobné opakování předchozího znaku (skupiny)
 +
|-
 +
| align=center |
 +
| align=center | <code>|</code>
 +
| Vyznačení variant (logická spojka nebo)
 +
|}
 +
 +
:{| class="wikitable"
 +
|+ '''Třídy znaků podle POSIXu a Perlu'''
 +
! 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ů

Aktuální verze z 8. 12. 2009, 16:49

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