OmegaT 3.5 – Korisnički priručnik

Regularni izrazi

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

Alati za regex i primjeri korištenja

Za sastavljanje i testiranje regularnih izraza dostupno je više interaktivnih alata. U načelu djeluju prema manje-više jednakome obrascu (na sljedećoj slici možemo vidjeti primjer alata Regular Expression Tester): regularnim izrazom (prvo polje) analizira se tekst i pronalaze tražene vrijednosti koje se prikazuju u tekstnome okviru rezultata.

Figure 13. Regular Expression Tester
Regular Expression Tester

Za sustave Windows, Linux i FreeBSD postoji i samostalni alat The Regex Coach. Funkcionira uglavnom na isti način kao što je to prikazano u gornjemu primjeru.

I sȃm program OmegaT nudi dobru zbirku korisnih regularnih izraza (pogledajte izbornik Mogućnosti > Segmentacija). Na sljedećem popisu imamo izraze koji mogu biti korisni pri pretraživanju prijevodne memorije.

Table 30. Regex – primjeri regularnih izraza u prijevodima
Regularni izraz Za pronalaženje sljedećega:
(\b\w+\b)\s\1\b dvostruke riječi
[\.,]\s*[\.,]+ zarez ili točka, nakon čega slijede razmaci pa još jedan zarez ili točka
\. \s+$ dodatni razmaci nakon točke na kraju retka
\s+a\s+[aeiou] engleski: ispred riječi koje počinju samoglasnicima u načelu se treba nalaziti neodređeni član „an”, a ne „a”
\s+an\s+[^aeiou] engleski: provjera na istome načelu kao gornja, osim što se radi o riječima koje počinju suglasnicima („a”, a ne „an”)
\s{2,} više od jednoga razmaka
\.[A-Z] točka nakon koje slijedi veliko slovo – moguće je da nedostaje razmak između točke i početka nove rečenice
\bis\b traženje „is”, a ne „this” ili „isn't” itd.