====== 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]]