regexp egrep grep sed "xc" na prvom mieste "t alebo T alebo Z" na druhom mieste a potom jedno az trojciferne cislo

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Září 16 18:42:50 CEST 2007


On Fri, 14 Sep 2007, Dalibor Straka wrote:

> Akorat [0-9]* sezere i cisla delsi nezli troj ciferne. Ty se musi
> vyresit jinak treba:
> sed -n -e '/^xc[ZT][1-9]=[0-9]$/p' -e '/^xc[ZT][1-9][0-9]=[0-9]$/p' ...

Přímočařejší je asi napsat něco jako
        ^xc[ZT][1-9]\(\|[0-9]\)=[0-9]$
nebo dokonce
        ^xc[ZT][1-9][0-9]\{0,1\}=[0-9]$

i když samozřejmě vzhledem k distributivnosti alternativy vůči konkatenaci
a skutečnosti, že {N,M} je jen zkratka pro jistým způsobem zřetězené
alternativy, to lze vždycky převést do "altenativního normálního
tvaru". :)

Všem vážným zájemcům o problematiku regulárních výrazů bych samozřejmě
doporučil se seznámit s jejich teoretickým pozadím, např. prostřednictvím
přednášky Automaty a gramatiky na naší škole.
Viz <http://kti.mff.cuni.cz/~bartak/automaty/index.html>.
Jsou tam i materiály pro samostudium. :)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux