Regularni vyrazy v glibc
David Kuzela
kuzela na mbox.vol.cz
Úterý Září 14 21:44:46 CEST 1999
Zdravim vsechny,
narazil jsem na problem ktery nechapu. Experimentoval jsem s
regexpy v Cecku a zjistil, ze mam-li stringy:
char s1[]="nejaka hezka {hlaska}",
s2[]=".*a[ \t].* {Hlaska}",
s3[]=".*a[ \t].* {hla{1,3}ska}";
pak po zkompilovani s2 i s3 (s flagem REG_EXTENDED) souhlasi
s s1. Pokud se pokusim pouzit \{1,3\}, dozvim se, ze:
unknown escape sequence `\}'
Result:
=> pokud pouziji uvnitr {} pismena jde o normalni znaky, pokud
jsou tam cisla, jde o soucast masky. Otazka je nasnade. Jak
tedy zadat shodu s retezcem s1[]="{1,5}" bez pouziti metaznaku?
To, ze se gcc nezna k '\}' si navic protireci s dokumentaci
(info libc), kde se pise:
`REG_BADBR'
There was an invalid `\{...\}' construct in the regular
expression. A valid `\{...\}' construct must contain either a
single number, or two numbers in increasing order separated by a
comma.
Verze:
libc 2.1.2-0pre6
gcc 2.7.2.3-4.8
--
David Kuzela
==[Dawyd]======[icq]=[24470559]===================
email: kuzela na mbox.vol.cz Student of VSE
web: http://penguin.cz/~dawyd Czech republic
==================================================
Další informace o konferenci Linux