Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze |
pojmy:regularni_vyrazy [2013/08/19 17:34] – olgarichterova | pojmy:regularni_vyrazy [2015/01/21 21:51] (aktuální) – vaclavcvrcek |
---|
====== 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, |
* **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). |
| |
| 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** | ====== 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 | | ^ ''|'' | svislítko | AltGr + Shift + pod "Backspace" nebo Alt + W | |
^ ''^'' | stříška | Alt + š (či 3) | | ^ ''^'' | stříška | Alt + š (či 3) | |
^ ''\'' | zpětné lomítko | Ctrl + Alt + Q | | ^ ''\'' | zpětné lomítko | Ctrl + Alt + Q | |
| |
| |
Dále doporučujeme [[http://cs.wikiversity.org/wiki/Kl%C3%A1vesov%C3%A9_zkratky_pro_zvl%C3%A1%C5%A1tn%C3%AD_znaky|tento odkaz]]. | |
| |
| |
==== Související odkazy ==== | ==== Související odkazy ==== |
<WRAP center round box 49%> | |
[[pojmy:dotazovaci_jazyk|Dotazovací jazyk]] | <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> | </WRAP> |
| |