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 |