## Pojmy regulárních výrazů.

Regulární výrazy (uváděné i zkráceně jako ‚regex‘ - z anglického ‚REGular Expressions‘) používané při vyhledávání a v segmentačních pravidlech jsou právě ty, které podporuje Java. Pokud potřebujete bližší informace, navštivte prosím tuto stránku: http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html. Vizte dodatečné odkazy a příklady níže.

### Označení

### Znaky

### Uvozující znaky

### Třídy sad a kategorií kódování Unicode

### Třídy znaků

### Předdefinované třídy znaků

### Označení hranic

### Hladové kvantifikátory

### Líné kvantifikátory

### Logické operátory

### Nástroje regex a příklady použití

### Pojem ...

### ... znamená:

### Označení

`(?i)` | Umožňuje hledání bez ohledu na velikost písmen (ve výchozím nastavení se rozlišují velká a malá písmena).

### Znaky

`x` | Znak x, s výjimkou následujících...
`\uhhhh` | Znak s hexadecimální hodnotou `0x` hhhh
`\t` | Znak tabulátoru (`‚\u0009‘`)
`\n` | Znak nového řádku (konce řádku) (`‚\u000A‘`)
`\r` | Znak návratu vozíku (`‚\u000D‘`)
`\f` | Znak posunu o stránku (`‚\u000C‘`)
`\a` | Znak zvukové signalizace (`‚\u0007‘`)
`\e` | Znak změny (`‚\u001B‘`)
`\c` x | Řídící znak odpovídající x
`\0` n | Znak s oktalovou/osmičkovou hodnotou `0` n (0 `<=` n `<=` 7)
`\0` nn | Znak s oktalovou/osmičkovou hodnotou `0` nn (0 `<=` n `<=` 7)
`\0` mnn | Znak s oktalovou/osmičkovou hodnotou `0` mnn (0 `<=` m `<=` 3, 0 `<=` n `<=` 7)
`\x` hh | Znak s hexadecimální/šestnáctkovou hodnotou `0x` hhhh

### Uvozující znaky

`\` | Lomítko samo o sobě neznamená nic, jen uvozuje následující znak. Je vyžadováno, pokud byste chtěli zadání metaznaků `!$()*+.<>?[\]^{|}` tak, aby odpovídaly samy sobě.
`\\` | Například toto je znak pro hledání zpětného lomítka
`\Q` | Nic neznamená, vymezuje všechny znaky až po `\E`
`\E` | Nic neznamená, ukončuje vymezení započaté pomocí `\Q`

### Třídy sad a kategorií kódování Unicode

``\p{InGreek}`` | Znak v řecké sadě (jednoduchá sada)
``\p{Lu}`` | Velké písmeno (jednoduchá kategorie)
``\p{Sc}`` | Symbol měny
``\P{InGreek}`` | Jakýkoliv znak mimo nějakého z Řecké sady (negace)
``[\p{L}&&[^\p{Lu}]]`` | Jakékoliv písmeno mimo velkých (odečítání)

### Třídy znaků

`[abc]` | `a`, `b` nebo `c` (jednoduchá třída)
`[^abc]` | Jakýkoliv znak mimo `a`, `b` nebo `c` (negace)
`[a-zA-Z]` | `a` až po `z` nebo `A` až po `Z`, včetně (rozsah)

### Předdefinované třídy znaků

`.` | Jakýkoliv znak (kromě znaků ukončujících řádek)
`\d` | Číslice: `[0-9]`
`\D` | Ne-číslice: `[^0-9]`
`\s` | Tzv. bílý znak (např. mezera): `[ \t\n\x0B\f\r]`
`\S` | Negace bílého znaku (např. ne-mezera): `[^\s]`
`\w` | Znak slova: `[a-zA-Z_0-9]`
`\W` | Znak ne-slova: `[^\w]`

### Označení hranic

`^` | Začátek řádku
`$` | Konec řádku
`\b` | Hranice slova
`\B` | Hranice ne-slova

### Hladové kvantifikátory

Tyto budou zahrnovat tolik, kolik jen mohou. Například: `a+` bude odpovídat `aaa` v `aaabbb`
X`?` | X, jednou nebo vůbec
X`*` | X, nula nebo vícekrát
X`+` | X, jednou nebo vícekrát

### Líné kvantifikátory

Tyto budou zahrnovat tak málo, jak jen mohou. Například: `a+?` bude odpovídat prvnímu `a` v `aaabbb`
X`??` | X, jednou nebo vůbec
X`*?` | X, nula nebo vícekrát
X`+?` | X, jednou nebo vícekrát

### Logické operátory

XY | X následované Y
X`|`Y | Buď X, a nebo Y
`(`XY`)` | XY jako samostatná skupina

## Nástroje regex a příklady použití

Existuje množství interaktivních nástrojů dostupných pro vývoj a testování regulárních výrazů. Všechny postupují dle stejného vzoru (vizte níže příklad ve formě pluginu pro Firefox): regulární výraz (záznam nahoře) zkoumá hledaný text (textové pole uprostřed), ukazuje výsledky v poli pro výsledky.
Můžete také vyzkoušet The Regex Coach jako samostatný nástroj pro Windows, Linux, Mac, FreeBSD, je podobný předchozímu příkladu.
Malá sbírka užitečných regex výrazů se nachází přímo v aplikaci OmegaT (vizte Možnosti > Segmentace). Následující seznam zahrnuje výrazy, které se mohou hodit při prohledávání překladové paměti:

Regulární výraz | Nalezne následující:
(\b\w+\b)\s\1\b | zdvojený výskyt slova
[\.,]\s*[\.,]+ | pomíchané čárky a tečky
\. \s$ | mezery navíc, za nimiž je tečka na konci řádku
\s+a\s+[aeiou] | Pro angličtinu: u slov začínajících na samohlásku se užívá neurčitý člen „an“, ne „a“
\s+an\s+[^aeiou] | Pro angličtinu: stejná kontrola jako nahoře, ale pro souhlásky („a“, ne „an“)
\s\s+ | víc než jedna mezera
\.[A-Z] | chybějící mezera mezi tečkou a začátkem nové věty

Právní poznámky | Obsah | Tematický rejstřík