Regulární výrazy ---------------- Regulární výrazy jsou speciální matematická vymyšlenost pro vyhledávání v textech. Ze začátku vám asi budou připadat děsné, ale věřte, že když se je naučíte používat, tak se jedná naprosto ďábelský nástroj. Pravidla jsou následující: 1) Každý znak je jednoznakový rexexp, který odpovídá sám sobě. Vyjímku tvoří znaky . * [ \, ^ na zač. řádku, na konci řádku a oddélovací znak (obvykle znak /). 2) Znak \ následovaný některým speciálním znakem je jednoznakový regexp vyhovující právě tomuto znaku. 3) Znak . vyhovuje každému znaku. 4) Výčet znaků uzvřený do [ ] vyhovuje každému znaku ve výčtu. Je-li na prvním místě znak ^, vyhovuje všem znakům, které ve výčtu nejsou. Znak ^ se do výčtu zaradí tak, že se napíše ne jako první (pokud se ptáte, co když je tam sama, tak zkuste trochu zapojit svoji šedou kůru mozkovou). Výčet lze rovněž zkrátit intervalem x-y. Znak - se pak do výčtu zařadí tak, že se napíše jako první nebo poslední. Znak ] se zařadí tak, že se napíše jako první, případně za úvodní ^ (je-li přítomna). 5) Jednoznakový regexp vyhovuje tomu, čemu vyhovuje podle předcházejícího 6) Jednoznakový regexp následovaný * vyhovuje řetězci tvořenému libovolným (i nulovým) počtem výskytů řetězce vyhovujícímu jednoznakovému regexpu. 7) Jednoznakový regexp následovaný \{m\} vyhovuje právě m výskytům regexp. 8) Jednoznakový regexp následovaný \{m,\} vyhovuje alespoň m výskytům regexp. 9) Jednoznakový regexp následovaný \{m,n\} vyhovuje m až n výskytům regexp. 10)Zřetězení více regexp je regexp vyhovující zřetězení výrazů vyhovujících popořadě jednotlivým regexp. 11)Symbol \< na začátku výrazu zajistí, že regexp bude vyhovovat začátu slova. 12)Symbol \> na konci regexp zajistí, že regexp bude vyhovovat konci slova. 13)Symbol ^ za začátku regexp zajistí, že regexp bude vyhovovat pouze začátku řádku. 14)Symbol na konci regexp zajistí, že regexp bude vyhovovat pouze konci řádku. Ještě několik příkladů: ahoj vyhovuje právě výskytům řetězce ahoj a[ho]j vyhovuje výskytům řetězců ahj a aoj ah*oj vyhovuje výskytům řetězců aoj, ahoj, ahhoj, ahhhoj, ... \<ahoj\> vyhovuje výskytům řetězců ahoj jako celých slov ^ahoj vyhovuje výskytům řetězců ahoj, které tvoři celý řádek Pro podrobnější popis regexp vás odkáži na manuálovou stránku programů grep a ed (možnosti těchto programů se trochu liší). Jenom je škoda, že UNIX neumí závorky (pro hvězdičku - x(ab)* vyhovující x, xab, xabab,... a alternativu ((ab)|(cd) vyhovující ab nebo cd). výheň