Descr
.
Základním stavebním kamenem je regulární výraz, který odpovídá jednomu znaku. Většina znaků, včetně písmen a číslic jsou regulární výrazy, které odpovídají sami sobě. Připraveny jsou následující metaznaky:
Dalším typem regulárních výrazů jsou seznamy znaků, které jsou uzavřeny mezi
.
... jakýkoli znak kromě \n
.\n
... nová řádka. \t
... horizontální tabulátor. \r
... znak návrat vozíku CR (0x0d). \e
... ESC (0x1B). \s
... libovolný prázdný znak (CR,LF,tab,space). \S
... znak různý od \s
.\l
... malá písmena a-z
.\u
... velká písmena A-Z
.\w
... \l
a\u
.\d
... číslice. \D
... znak, který není číslicí. \a
... číslice nebo \w
.\x00;
... znak s danou hexadecimální hodnotou. \i000;
... znak s danou decimální hodnotou. \o000;
... znak s danou octa hodnota. \X
... značí použití v původním významu, kde X je kterýkoli znak s výjimkou výše uvedených.
'['
a ']'
. Takovému
regulárnímu výrazu potom odpovídá kterýkoli znak obsažený v uvedeném
výčtu. Pokud je prvním znakem uvedeným v seznamu '^'
,
význam se obrací a jsou přípustné právě ty znaky, které obsaženy
v seznamu nejsou. Například:
Většina metaznaků uvedených v prvním přehledu ztrácí v seznamu svůj speciální význam (všechny kromě
[abc]
... znak a, znak b nebo znak c. [a-c]
... totéž co předchozí. [^c]
... jakýkoli znak kromě c. [a-c\\Hl-r]
... znaky a až c, zpětné lomítko, H a l až r.
\t
a \n
).
Původní význam '['
či '^'
lze, stejně jako v ostatních
případech, získat pomocí zpětného lomítka.
Regulární výrazy mohou být následovány některým z následujících
operátorů pro iterace:
Regulární výrazy lze řetězit. Výsledný regulární výraz odpovídá zřetězení řetězců odpovídajících jednotlivým regulárním výrazům. Dva regulární výrazy mohou být rovněž spojeny infixním operátorem
?
... předcházející znak se může, ale nemusí vyskytnout. *
... předcházející znak se vyskytnout nemusí nebo se může vyskytnou jednou a vícekrát. +
... předcházející znak se vyskytne jednou nebo vícekrát.
'|'
, který má význam jejich alternativní
kompozice. Operátory iterace mají nižší precedenci,
než operátor alternativní kompozice. Ve výrazech lze pro explicitní
změnu precedence rovněž použít závorky '('
a ')'
.
dvorka 2013-12-31