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/09/13 15:24] – Schvaleno pro 1. verzi vaclavcvrcekpojmy:regularni_vyrazy [2015/01/21 21:51] (aktuální) vaclavcvrcek
Řá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>]'' | 
  
-====== KLávesové zkratky ======+ 
 +====== 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é. 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é.
Řádek 38: Řádek 36:
 ^ ''^'' | stříška | Alt + š (či 3) | ^ ''^'' | stříška | Alt + š (či 3) |
 ^ ''\'' | zpětné lomítko | Ctrl + Alt + Q | ^ ''\'' | zpětné lomítko | Ctrl + Alt + Q |
 +
  
 ==== Související odkazy ==== ==== Související odkazy ====
  
-<WRAP round box 49%> +<WRAP round box 50%> 
-[[pojmy:dotazovaci_jazyk|Dotazovací jazyk]]+[[pojmy:dotazovaci_jazyk|Dotazovací jazyk]] • [[kurz:pokrocile_dotazy|Kurz: Pokročilé dotazy]] • [[http://www.regexr.com|RegExr: Learn, Build, & Test RegEx]]
 </WRAP> </WRAP>
 +