====== Regulární výrazy ====== Regulární výrazy (pojem pochází z teorie formálních jazyků, jeho význam běžně používaný v informatice je však poněkud odlišný) umožňují exaktně popsat množinu textových řetězců odpovídající hledanému výrazu či jevu. Pro tyto účely používají zástupné znaky se speciálním významem (tzv. //wildcard// - žolíky). Regulární výrazy jsou velmi podstatnou součástí [[pojmy:dotazovaci_jazyk|dotazovacího jazyka]]. Zjednodušeně řečeno se jedná o vkládání určitých speciálních znaků se zvláštním významem do slov, která chceme vyhledat. Podobně lze postupovat i při vyhledávání pomocí [[pojmy:korpusovy_manazer|korpusového manažeru]], jeho možnosti jsou však daleko širší. Chceme-li tedy například v korpusu vyhledat všechny tvary slova //bobule//, nechceme je všechny vypisovat a nechceme ani používat lemmatizaci, je možné zadat dotaz ''bobul.*'' - tečka zde zastupuje libovolný znak a hvězdička libovolný počet opakování předchozího (tj. libovolného) znaku. Musíme však počítat s tím, že manažer vyhledá všechna slova začínající //bobul//, tedy například i adjektivum //bobulovité// apod. Sekvence ''.*'' tedy zastupuje libovolnou část slova (nebo i [[pojmy:tag|tagu]]) a je zřejmě vůbec nejčastěji používanou součástí regulárního výrazu. Při zadávání dotazu můžeme regulární výrazy samozřejmě uplatnit i na začátku nebo uprostřed dotazu. Mezi regulární výrazy používané v rozhraní [[manualy:kontext:index|KonText]] patří následující speciální znaky: * **tečka** (''.'') - představuje jeden libovolný znak, * **interval** (''{n, k}'') - představuje //n// až //k// opakování předchozího znaku nebo většího celku; je-li //k// vynecháno (''{n,}''), odpovídá intervalu nejméně //n// opakování, pokud má interval tvar ''{n}'', odpovídá mu přesně //n// opakování; * **hvězdička** (''*'') - představuje libovolný počet (0 a více) opakování předchozího znaku nebo celku, je tedy ekvivalentní s ''{0,}'' * **plus** (''+'') - představuje 1 nebo více opakování předchozího znaku nebo celku, totéž co ''{1,}'' * **otazník** (''?'') - představuje žádný nebo jeden výskyt předchozího znaku nebo celku, identické s ''{0,1}'' * **seznam** (''[]'') - představuje alternativu. Nabízí možnost vybrat jeden libovolný znak z těch, které jsou uvedeny v seznamu uvnitř hranatých závorek; pokud je prvním znakem seznamu stříška (''^''), jde o negovaný seznam a představuje tedy libovolný jeden znak kromě těch uvedených uvnitř hranatých závorek; v rámci seznamu je možné používat také pomlčku (''-'') jako operátor rozsahu (např. ''[a-z]'', ''[1-9]''), * **svislá čára** (''|'') - představuje také alternativu, ne ovšem mezi jednotlivými znaky, ale celými řetězci tvořícími celek, * **kulaté závorky** - libovolnou část výrazu je možné seskupit do kulatých závorek, vytvořit tak celek a ovlivnit tím prioritu jeho vyhodnocování nebo na něj aplikovat výše zmíněné kvantifikátory, vztahující se jinak jen na jeden (předcházející) znak, * **zpětné lomítko** (''\'') - pokud některému speciálnímu znaku předchází zpětné lomítko, ztrácí tento znak svůj zvláštní význam (což umožňuje např. vyhledávat konkrétní interpunkční znaménka). Příklady využití regulárních výrazů najdete v následující tabulce: ^ Příklad ^ regulární výraz ^ | všechny tvary slova //ptakopysk// | ''ptakopys.*'' | | slovo //kdy// s malým nebo velkým počátečním písmenem | ''[kK]dy'' | | tečka jako interpunkční znaménko | ''\.'' | | infinitivy předponových sloves od //nést// | ''.+nést'' | | různě dlouhé varianty citoslovce //ratata// | ''ra(ta)+'' | | pravopisnou dubletu: //diskuze// psané i se //s// | ''diskuse|diskuze'' nebo ''disku[sz]e'' | | libovolná čísla skládající se ze tří nebo čtyř cifer | ''[0-9]{3,4}'' | ====== Klávesové zkratky ====== Na české klávesnici v systému MS Windows můžete speciální znaky vyvolat pomocí [[http://cs.wikiversity.org/wiki/Kl%C3%A1vesov%C3%A9_zkratky_pro_zvl%C3%A1%C5%A1tn%C3%AD_znaky|klávesových zkratek]] (přehled nejpoužívanějších uvádíme v tabulce níže). V ostatních systémech jsou tyto znaky dostupné většinou pomocí AltGr (Linux), případně Alt (Mac OS X) a klávesy, pod níž je daný znak standardně umístěn na klávesnici anglické. ^ ''|'' | svislítko | AltGr + Shift + pod "Backspace" nebo Alt + W | ^ ''{}'' | složené závorky | AltGr + 9, AltGr + 0 nebo Alt + B, Alt + N | ^ ''[]'' | hranaté závorky | Alt + F, Alt + G | ^ ''^'' | stříška | Alt + š (či 3) | ^ ''\'' | zpětné lomítko | Ctrl + Alt + Q | ==== Související odkazy ==== [[pojmy:dotazovaci_jazyk|Dotazovací jazyk]] • [[kurz:pokrocile_dotazy|Kurz: Pokročilé dotazy]] • [[http://www.regexr.com|RegExr: Learn, Build, & Test RegEx]]