Perl, Regulární výrazy (32.díl)

Napsal O webu (») 30. 5. 2008 v kategorii Programování, přečteno: 1716×
obrazky/logo_perl.jpg

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řídaVýznamPomocí výčtu
dČíslice[0-9]
DCokoliv kromě číslic[^0-9]
sBílý znak[f ]
SCokoliv kromě bílého znaku[^ f ]
wSlovo[a-zA-Z_0-9]
WCokoliv 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
Štítky: Perl
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel dvanáct a dvě