Obsah
Rejstřík 🔎︎

# 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 se může symbol (glyf) zobrazený na obrazovce podobat jinému kódu Unicode než tomu, který se pro něj v písmu skutečně používá. Kódy Unicode je možné zjistit volbou Vložit - Speciální znak nebo pomocí klávesové zkratky pro zadávání znaků Unicode.

| | 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.

1. K uzavření skupiny alternativ "|". Například regulární výraz "s(tí|lo)n" nalezne "stín" i "slon".

2. 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".

3. 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