Obsah

# Seznam regulárních výrazů

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

Cells with the empty string ("") are not equivalent to blank cells. When searching or calculating with text, the empty string "" is the text with length zero.

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 | Je-li zadáno do textového pole Najít, vyhledá zalomení řádku vložená kombinací kláves Shift+Enter, případně v buňce Calcu kombinací Ctrl+Enter. Je-li zadáno v aplikaci Writer do textového pole Nahradit, vloží zalomení odstavce, které se vkládá klávesou Enter nebo Return. V aplikaci Calc nemá zvláštní význam a použije se doslovně. Chcete-li změnit ve Writeru zalomení řádku na zalomení odstavce, zadejte \n do polí Najít i 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).
\w | Match a word character.
\W | Match a non-word character.
^$ | 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.
\N{NÁZEV ZNAKU UNICODE} | Pojmenovaný znak Unicode. Užitečnými znaky Unicode jsou například SPACE, NO-BREAK SPACE, SOFT HYPHEN, ACUTE ACCENT, CIRCUMFLEX ACCENT nebo GRAVE ACCENT. Názvy znaků Unicode lze vyhledávat a prohlížet pomocí 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 na nalezený podřetězec v závorkách dalo při pozdějším použití odkazovat, slouží v poli Najít zápis "\N" nebo v poli Nahradit zápis "$N". "N" představuje číslici, odkaz na první shodu tak představuje "\1" v poli Najít a "$1" v poli Nahradit; odkazem na druhou shodu je "\2" či "$2" atd. Například regulární výraz "(890)xy\1z\1" nalezne "890xy890z890". S regulárním výrazem "(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". Koncové "\b" zaručuje, že nebudou ovlivněna slova jako "učitelský" nebo "hasičský".
[:alpha:] | Představuje znak abecedy. Pomocí [:alpha:] najdete jeden.
\d [:digit:] | Představuje desítkovou číslici. Pomocí [:digit:] najdete jednu.
[:alnum:] | Představuje alfanumerický znak ([:alpha:] a [:digit:]).
\s [: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.

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

Dokumentace regulárních výrazů v projektu ICU

Find & Replace

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