Třídy znaků
V regulárních výrazech je možné používat tzv. třídy znaku. Třídu znaků můžeme považovat za metasymbol, pomocí kterého můžeme popsat určitou skupinu znaků. Existují čtyři způsoby, jak znakovou třídu popsat:1) Výčet znaků.
2) Perlové třídy znaků.
3) Třídy znaků zadané pomocí UNICODE vlastností.
4) Třídy znaků podle standardu POSIX.
Výčet znaků
Jednou z možností, jak skupinu znaků popsat, je výčtem jednotlivých znaků. Ve výčtu lze použít i metasymbolů, ale pouze těch, které odpovídají nějakému konkrétnímu znaku. Lze např. použít d, s, w, ale ne např. L, B apod., které jsou pravdivé za určitých okolností (pozice) nebo ukončují platnost jiného metasymbolu, ale neodpovídají žádnému konkrétnímu znaku. Proto je uvnitř třídy znaků symbol chápán jinak než mimo třídu znaků (uvnitř hranatých závorek znamená znak backspace, mimo složené závorky znamená hranici slova). Metaznaky ztrácejí uvnitř hranatých závorek svůj význam a stávají se obyčejným literálem. Jedinými uznávanými metasymboly jsou (znamená negaci třídy znaků a ne pozici začátku řádku), ] (ukončuje třídu znaků) a -, podle toho, kde je tento symbol uveden, může znamenat rozsah. A nyní malý příklad:
[abc]
// jeden ze tří symbolů a, b nebo c
[a|c]
// jeden ze tří znaků a, |, nebo c
[abc|abd|abe]
// jeden z šesti zanků a, b, c, d, e, |
[a-z]
// jeden ze znaků a až z
[0-9]
// jedna z číslic
Perlové třídy znaků
Perl poskytuje sadu metasymbolů, které reprezentují třídy znaků. Jméno této třídy se skládá z obráceného lomítka a písmene. Pokud je písmeno velké, znamená to negaci třídy znaků zadané malým písmenem.Třída | Význam | Pomocí výčtu |
---|---|---|
d | Číslice | [0-9] |
D | Cokoliv kromě číslic | [^0-9] |
s | Bílý znak | [f ] |
S | Cokoliv kromě bílého znaku | [^ f ] |
w | Slovo | [a-zA-Z_0-9] |
W | Cokoliv kromě slova | [^a-zA-Z_0-9] |
A to by bylo pro dnešek všechno. V dalším díle se podíváme na zbylé dva způsoby popisu třídy znaků. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman