Obsah
Index 🔎︎

# Seznam regulárních výrazů

Výraz | Význam a použití
Jakýkoli znak | Daný znak, pokud se nejedná o speciální znak pro regulární výrazy. Seznam těchto speciálních znaků uvádí následující tabulka.
. | Jeden jakýkoliv znak kromě odřádkování a konce odstavce. Např. při hledání výrazu "p.s" se najde "pes" i "pas".
^ | Začátek odstavce nebo buňky. Ignorují se zvláštní objekty na začátku odstavce, např. prázdná pole či rámce ukotvené ke znaku. Příklad: "^Petr" nalezne slovo "Petr" pouze tehdy, jde-li o první slovo odstavce.
$ | Konec odstavce nebo buňky. Ignorují se zvláštní objekty na konci odstavce, např. prázdná pole či rámce ukotvené ke znaku. Příklad: "Petr$" nalezne slovo "Petr" pouze tehdy, jde-li o poslední slovo odstavce a odstavec nekončí tečkou. Samotný znak $ představuje konec odstavce. S jeho pomocí je možné konce odstavců hledat a nahrazovat.
* | Žádný či více výskytů výrazu bezprostředně předcházejícího tomuto znaku. Například "Ab*c" najde "Ac", "Abc", "Abbc", "Abbbc" atd.
+ | Jeden či více výskytů výrazu bezprostředně předcházejícího tomuto znaku. Například "AX.+4" najde "AXx4", ale ne "AX4". V odstavci se hledá vždy nejdelší řetězec odpovídající regulárnímu výrazu. Pokud by odstavec obsahoval řetězec "AX 4 AX4", označil by se celý tento řetězec.
? | Žádný nebo jeden výskyt výrazu bezprostředně předcházejícího tomuto znaku. Například "Texty?" najde "Text" nebo "Texty" a "x(ab|c)?y" najde "xy", "xaby" nebo "xcy".
\ | Speciální znak, který po něm následuje, se interpretuje jako běžný znak a ne jako regulární výraz (kromě kombinací "\n", "\t", "\b", "\>" a "\<"). Například "strom\." najde "strom.", ale ne "stromu" či "stromy".
\n | V textovém poli Najít představuje zalomení řádku vložené klávesovou zkratkou Shift+Enter. V textovém poli Nahradit představuje v modulu Writer zalomení odstavce zadané klávesou Enter nebo Return. V aplikaci Calc nemá zvláštní význam a použije se doslovně. Chcete-li změnit zalomení řádku na zalomení odstavce, zadejte \n do polí Najít a Nahradit a poté proveďte nahrazení.
\t | Znak tabulátoru. Je možné jej použít také v poli Nahradit.
\b | Hranice slov. Například "\bváha" nalezne "váhavý", ale ne "rovnováha", kdežto "váha\b" nalezne "rovnováha", ale ne "váhavý". Slovo "váha" je pak nalezeno v obou případech. Tento tvar nahrazuje zastaralé (ač stále funkční) tvary "\>" (nalezne konec slova) a "\<" (nalezne začátek slova).
^$ | Najde prázdný odstavec.
^. | Najde první znak odstavce.
& nebo $0 | Při nahrazování přidá řetězec, který byl nalezen pomocí kritéria v poli Najít, k výrazu zadanému v poli Nahradit. Příklad: když zadáte do pole Najít "window" a do pole Nahradit "&frame", slovo "window" se nahradí za "windowframe". Také je možné zadat "&" do pole Nahradit, pokud chcete upravit Atributy nebo Formát nalezeného řetězce.
[...] | Jediný výskyt jakéhokoliv znaku v závorkách. Například "[abc123]" nalezne znaky "a", "b", "c", "1", "2" a "3". "[a-e]" nalezne jednotlivé výskyty znaků od "a" do "e", a to včetně počátečního a koncového znaku (v rozsahu je nutné nejdříve zadat znak s menším číslem kódu Unicode). "[a-eh-x]" nalezne jednotlivé výskyty znaků v rozsazích od "a" do "e" a od "h" do "x".
[^...] | Jediný výskyt znaku (včetně tabulátorů, mezer a zalomení řádku), který se nenachází mezi znaky určenými rozsahy, v nichž platí i počáteční a koncový znak. Například "[^a-syz]" nalezne všechny znaky, které se nenachází v rozsahu od "a" do "s" (včetně těchto znaků) nebo nejsou znaky "y" a "z".
\uXXXX \UXXXXXXXX | Znak určený čtyřmístným šestnáctkovým kódem Unicode (XXXX). Znak určený osmimístným šestnáctkovým kódem Unicode (XXXXXXXX). Pro určitá symbolová písma může kód speciálního znaku záviset na použitém písmu. Kódy je možné zjistit v dialogovém okně Vložit - Speciální znak.
| | Infixový operátor oddělující alternativy. Nalezne výraz, který se nachází před "|", a také výraz, který se nachází za "|". Například "tohle|tamto" najde "tohle" i "tamto".
{N} | Postfixový operátor určující přesný počet výskytů ("N") znaku bezprostředně před závorkou. Například "tre{2}" najde "tree".
{N,M} | Postfixový operátor určující rozsah počtu výskytů (alespoň "N" a nejvýš "M") znaku bezprostředně před závorkou. Například "tre{1,2}" najde "tre" a "tree".
{N,} | Postfixový operátor určující rozsah počtu výskytů (alespoň "N" a neurčené maximum) znaku bezprostředně před závorkou. (Maximální počet výskytů je omezen pouze velikostí dokumentu.) Například "tre{2,}" najde "tree", "treee" i "treeeee".
(...) | Seskupení sloužící ke třem účelům. K uzavření skupiny alternativ "|". Například regulární výraz "s(tí|lo)n" nalezne "stín" i "slon". K seskupení do komplexního výrazu, na nějž lze použít postfixové operátory "*", "+" a "?" spolu s postfixovými operátory s počtem výskytů. Například regulární výraz "a(bc)?d" najde "ad" i "abcd"; výraz "M(iss){2}ippi" nalezne "Mississippi". K tomu, aby se nalezený podřetězec v závorkách zaznamenal jako reference, která se později použije v poli Najít pomocí zápisu "\n" nebo v poli Nahradit pomocí zápisu "$n". Referenci na první podřetězec v aktuálním výrazu tak představuje "\1" v poli Najít a "$1" v poli Nahradit. Referenci na druhý nalezený podřetězec odpovídá "\2" či "$2" atd. Například regulární výraz "(890)7\1\1" nalezne "8907890890". S regulárním výrazem "\b(učitel|hasič)\b" v poli Najít a výrazem "$1ka" v poli Nahradit je možné nahradit výskyty slov "učitel" a "hasič" slovy "učitelka" a "hasička", aniž by byla ovlivněna slova "učitelský" a "hasičský".
[:alpha:] | Představuje znak abecedy. Pomocí [:alpha:]+ najdete jeden.
[:digit:] | Představuje desítkovou číslici. Pomocí [:digit:]+ najdete jednu.
[:alnum:] | Představuje alfanumerický znak ([:alpha:] a [:digit:]).
[:space:] | Představuje znak mezera (nikoli však další prázdné znaky).
[:print:] | Představuje tisknutelný znak.
[:cntrl:] | Představuje netisknutelný znak.
[:lower:] | Představuje malý znak, je-li v Možnostech zaškrtnuta volba Rozlišovat velikost.
[:upper:] | Představuje velký znak, je-li v Možnostech zaškrtnuta volba Rozlišovat velikost.

Úplný seznam dostupných speciálních znaků a syntaxe naleznete v dokumentaci regulárních výrazů v projektu ICU.

Všechny pojmenované třídy výrazů od [:alpha:] po [:upper:] musí být v regulárních výrazech uzavřeny v závorkách, jak ukazují následující příklady.

Následující příklady ilustrují, že lze z jednotlivých prvků vytvářet komplexní a sofistikované regulární výrazy.

## Příklady

Výraz | Význam
^$ | Prázdný odstavec. ^ určuje, že se nalezený řetězec musí nacházet na začátku odstavce. $ určuje, že za nalezeným řetězcem následuje konec odstavce nebo konec buňky.
^. | První znak odstavce. ^ určuje, že se nalezený řetězec musí nacházet na začátku odstavce. . určuje jakýkoliv jednotlivý znak.
e([:digit:])? | Nalezne samotné "e" nebo "e" následované jednou číslicí. e určuje znak "e", [:digit:] určuje jakoukoliv desítkovou číslici, ? určuje žádný nebo jeden výskyt číslice [:digit:].
^([:digit:])$ | Nalezne odstavec nebo buňku obsahující právě jednu číslici. ^ určuje, že se nalezený řetězec musí nacházet na začátku odstavce. [:digit:] určuje jakoukoliv desítkovou číslici, $ určuje, že za nalezeným řetězcem následuje konec odstavce nebo konec buňky.
^[:digit:]{3}$ | Nalezne odstavec nebo buňku obsahující pouze tři číslice. ^ určuje, že se nalezený řetězec musí nacházet na začátku odstavce. [:digit:] určuje jakoukoliv desítkovou číslici, {3} určuje, že se číslice [:digit:] musí vyskytnout třikrát, $ určuje, že za nalezeným řetězcem následuje konec odstavce nebo konec buňky.
\bkonst(itu|ruk)ce\b | Nalezne slova "konstituce" a "konstrukce", ale nikoli slovo "konstrukcemi". \b určuje, že nalezený řetězec musí začínat na hranici slov, konst určuje znaky "konst", ( je začátek skupiny, itu určuje znaky "itu", | značí alternativu, ruk určuje znaky "ruk", ) ukončuje skupinu, ce určuje znaky "ce", \b určuje, že nalezený řetězec musí končit na hranici slov.

Související témata

Najít a nahradit

Použití regulárních výrazů při vyhledávání textu

Hledání a nahrazování v aplikaci Writer

Wiki stránka o regulárních výrazech ve Writeru

Wiki stránka o regulárních výrazech v Calcu