Nastavení

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í 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í 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 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í KonText patří následující speciální znaky:

  • tečka (.) - představuje jeden libovolný znak,
  • interval ({n, k}) - představuje nk 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í 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