Appendix D. Regulární výrazy
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 identické s těmi, které podporuje Java. Pokud potřebujete bližší informace, navštivte stránku Java Regex documentation. Projděte si dodatečné odkazy a příklady níže.
Note
Tato kapitola se obrací především na pokročilé uživatele, kteří potřebují definovat vlastní varianty pravidel segmentace nebo chtějí získat komplexnější a účinnější nástroj při vyhledávání.
Table D.1. Regulární výrazy – Označení
| Pojem ... |
... znamená: |
| (?i) |
Umožňuje hledání bez ohledu na velikost písmen (ve výchozím nastavení se rozlišují velká a malá písmena). |
Table D.2. Regulární výrazy – Znak
| Pojem ... |
... znamená: |
| x |
Znak x, s výjimkou následujících... |
| \uhhhh |
Znak s hexadecimální/šestnáctkovou hodnotou 0xhhhh |
| \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‘) |
| \cx |
Řídící znak odpovídající x |
| \0n |
Znak s oktalovou/osmičkovou hodnotou 0n (0 <= n <= 7) |
| \0nn |
Znak s oktalovou/osmičkovou hodnotou 0nn (0 <= n <= 7) |
| \0mnn |
Znak s oktalovou/osmičkovou hodnotou 0mnn (0 <= m <= 3, 0 <= n <= 7) |
| \xhh |
Znak s hexadecimální/šestnáctkovou hodnotou 0xhh |
Table D.3. Regulární výrazy – Uvozování
| Pojem ... |
... znamená: |
| \ |
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 |
Table D.4. Regulární výrazy – Třídy pro bloky a kategorie Unicode
| Pojem ... |
... znamená: |
| \p{řecky} |
Znak v řecké sadě (jednoduchá sada) |
| \p{Lu} |
Velké písmeno (jednoduchá kategorie) |
| \p{Sc} |
Symbol měny |
| \p{řecky} |
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í) |
Table D.5. Regulární výrazy – Třídy znaků
| Pojem ... |
... znamená: |
| [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) |
Table D.6. Regulární výrazy – Předdefinované třídy znaků
| Pojem ... |
... znamená: |
| . |
Jakýkoliv znak (kromě znaků ukončujících řádek) |
| \d |
Číslice: [0-9] |
| \D |
Ne-číslice: [^0-9] |
| \s |
Netisknutelný 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] |
Table D.7. Regulární výrazy - Označení hranic
| Pojem ... |
... znamená: |
| ^ |
Začátek řádku |
| $ |
Konec řádku |
| \b |
Hranice slova |
| \B |
Hranice ne-slova |
Table D.8. Regulární výrazy – Hladové kvantifikátory
| Pojem ... |
... znamená: |
| X
?
|
X, jednou nebo vůbec |
| X
*
|
X, nula nebo vícekrát |
| X
+
|
X, jednou nebo vícekrát |
Note
Hladové kvantifikátory se budou snažit najít tolik shody, jak je to jen možné. Například:
a+
bude odpovídat aaa v
aaabbb
Table D.9. Regulární výrazy – Líné kvantifikátory
| Pojem ... |
... znamená: |
| X?? |
X, jednou nebo vůbec |
| X*? |
X, nula nebo vícekrát |
| X+? |
X, jednou nebo vícekrát |
Note
Líné kvantifikátory se budou snažit najít co nejmíň shody, jak je to jen možné. Například:
a+?
bude odpovídat prvnímu
a
v
aaabbb
Table D.10. Regulární výrazy – Logické operátory
| Pojem ... |
... znamená: |
| XY |
X následované Y |
| X|Y |
Buď X anebo Y |
| (XY) |
XY jako samostatná skupina |