AplikaceAplikace
Nastavení

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
pojmy:regularni_vyrazy [2013/07/09 20:01] Olga Richterovapojmy:regularni_vyrazy [2015/01/21 21:51] (aktuální) Václav Cvrček
Řádek 1: Řádek 1:
 ====== Regulární výrazy ====== ====== 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]].+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.
  
-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. S podobnou, byť velmi primitivní, formou vyhledávání se můžeme setkat třeba při hledání souborů ve Windows (pomocí menu Start > Hledat), které nevyžaduje přesnou znalost celého názvu souboru. Pokud si například u souboru //seznam.txt// nepamatujeme jeho příponu, stačí pro hledání zadat //seznam.*// - hvězdička v tomto případě zastupuje libovolnou koncovku.  +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:  
- +
-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 [[rozhranixx|RozhraníXX]] patří následující speciální znaky:  +
  
   * **tečka** (''.'') - představuje jeden libovolný znak,   * **tečka** (''.'') - představuje jeden libovolný znak,
Řádek 14: Řádek 12:
   * **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]''),   * **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,   * **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í,+  * **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).   * **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).
  
Řádek 27: Řádek 25:
 | pravopisnou dubletu: //diskuze// psané i se //s// |  ''diskuse<nowiki>|</nowiki>diskuze'' nebo ''disku[sz]e'' | | pravopisnou dubletu: //diskuze// psané i se //s// |  ''diskuse<nowiki>|</nowiki>diskuze'' nebo ''disku[sz]e'' |
 | libovolná čísla skládající se ze tří nebo čtyř cifer |  ''[0-9]{3,4}'' | | libovolná čísla skládající se ze tří nebo čtyř cifer |  ''[0-9]{3,4}'' |
-| libovolná pozice (slovo i interpunkční znaménko) mezi dvěma lemmaty | ''[lemma=<nowiki>"</nowiki>mít<nowiki>"</nowiki>][][lemma=<nowiki>"</nowiki>srdce<nowiki>"</nowiki>]'' | 
  
-====== Šikovné zkratky ====== 
-**na české klávesnici** 
  
-  *| - AltGr + Shift + pod "Backspace" nebo Alt + W +====== Klávesové zkratky ======
-  *{} - AltGr + 9, AltGr + 0 nebo Alt + B, Alt + N +
-  *[] - Alt + F, Alt + G +
-  *^ – Alt + š (či 3)+
  
-==== Související odkazy ====+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é.
  
-[[pojmy:dotazovaci_jazyk|Dotazovací jazyk]]+^ ''|'' | 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 ====
  
 +<WRAP round box 50%>
 +[[pojmy:dotazovaci_jazyk|Dotazovací jazyk]] • [[kurz:pokrocile_dotazy|Kurz: Pokročilé dotazy]] • [[http://www.regexr.com|RegExr: Learn, Build, & Test RegEx]]
 +</WRAP>