Regularni izrazi (skraćeno – regex) koji se koriste za pretraživanje i pravila segmentacije su oni koje podržava Java. Više konkretnih podataka možete pronaći u dokumentaciji o regularnim izrazima u Javi. Dodatne upute i primjeri slijede u daljnjem tekstu.
Note
Ovo je poglavlje namijenjeno naprednim korisnicima koji trebaju mogućnost određivanja vlastitih varijanti pravila segmentacije ili složenije i efikasnije načine pretraživanja.
Table 20. Regex – indikatori
Konstrukt |
...odgovara sljedećem |
(?i) |
omogućavanje podudaranja bez razlikovanja veličine slova (prema zadanim vrijednostima uzorak razlikuje velika i mala slova) |
Table 21. Regex – znak
Konstrukt |
...odgovara sljedećem |
x |
znak x, osim u sljedećim slučajevima... |
\uhhhh |
znak heksadecimalne vrijednosti 0xhhhh |
\t |
znak tabulatora ('\u0009') |
\n |
znak novoga retka ('\u000A') |
\r |
znak kraja retka ('\u000D') |
\f |
znak nove stranice ('\u000C') |
\a |
znak zvona ('\u0007') |
\e |
prekidni znak ('\u001B') |
\cx |
kontrolni znak koji odgovara znaku x |
\0n |
znak oktalne vrijednosti 0n (0 <= n <= 7) |
\0nn |
znak oktalne vrijednosti 0nn (0 <= n <= 7) |
\0mnn |
znak oktalne vrijednosti 0mnn (0 <= m <= 3, 0 <= n <= 7) |
\xhh |
znak heksadecimalne vrijednosti 0xhh |
Table 22. Regex – citat
Konstrukt |
...odgovara sljedećem |
\ |
ništa, ali citira sljedeći znak; potreban je kada želite upisati neki od metaznakova !$()*+.<>?[\]^{|} da predstavljaju same sebe |
\\ |
primjera radi, ovo je znak obrnute kose crte |
\Q |
ništa, ali citira sve znakove do \E |
\E |
ništa, ali okončava citiranje započeto s \Q |
Table 23. Regex – klase za blokove i kategorije Unicode
Konstrukt |
...odgovara sljedećem |
\p{InGreek} |
znak u grčkome bloku (jednostavni blok) |
\p{Lu} |
veliko slovo (jednostavna kategorija) |
\p{Sc} |
simbol valute |
\P{InGreek} |
bilo koji znak osim znaka iz grčkoga bloka (negacija) |
[\p{L}&&[^\p{Lu}]] |
bilo koje slovo osim velikih slova (oduzimanje) |
Table 24. Regex – klase znakova
Konstrukt |
...odgovara sljedećem |
[abc] |
a, b ili c (jednostavna klasa) |
[^abc] |
bilo koji znak osim a, b ili c (negacija) |
[a-zA-Z] |
a do z ili A do Z, uključujući navedena slova (raspon) |
Table 25. Regex – unaprijed određene klase znakova
Konstrukt |
...odgovara sljedećem |
. |
bilo koji znak (osim onih za okončanje retka) |
\d |
znamenka: [0-9] |
\D |
nije znamenka: [^0-9] |
\s |
znak bjeline: [ \t\n\x0B\f\r] |
\S |
nije praznina: [^\s] |
\w |
znak riječi: [a-zA-Z_0-9] |
\W |
nije riječ: [^\w] |
Table 26. Regex – granični podudarivači
Konstrukt |
...odgovara sljedećem |
^ |
početak retka |
$ |
kraj retka |
\b |
granica riječi |
\B |
granica svega osim riječi |
Table 27. Regex – pohlepni kvantifikatori
Konstrukt |
...odgovara sljedećem |
X
?
|
X, jednom ili nijednom |
X
*
|
X, nula ili više puta |
X
+
|
X, jednom ili više puta |
Note
Pohlepni kvantifikatori pokušavaju pronaći što je moguće više podudaranja. Primjerice,
a+
pronalazi aaa u
aaabbb
.
Table 28. Regex – reluktantni (nepohlepni) kvantifikatori
Konstrukt |
...odgovara sljedećem |
X?? |
X, jednom ili nijednom |
X*? |
X, nula ili više puta |
X+? |
X, jednom ili više puta |
Note
Nepohlepni kvantifikatori pokušavaju pronaći što je moguće manje podudaranja. Primjerice,
a+?
pronalazi prvo slovo
a
u
aaabbb
.
Table 29. Regex – logički operatori
Konstrukt |
...odgovara sljedećem |
XY |
X nakon kojega slijedi Y |
X|Y |
ili X ili Y |
(XY) |
XY kao jedna skupina |