OmegaT 4.2 – Käyttöopas

Liite D. Säännölliset lausekkeet

Hakutoiminnoissa ja segmentointisäännöissä käytetään Java-ohjelmointikielen tukemia säännöllisiä lausekkeita (lyhyesti: regex). Jos haluat tarkempaa tietoa säännöllisistä lausekkeista, tutustu Javan regex-dokumentaatioon. Lisää esimerkkejä on alla.

Huomaa

Tämä kappale on tarkoitettu edistyneille käyttäjille, jotka haluavat määritellä omia segmentointisääntöjä tai laatia monimutkaisia ja tehokkaita hakuavaimia.

Taulu D.1. Regex – Merkinnät
Muotoilu … vastaa seuraavaa
(?i) Ottaa käyttöön kirjainkoosta riippumattomat osumat (oletusasetuksena on, että osumat huomioivat kirjainkoon).

Taulu D.2. Regex – Merkki
Muotoilu … vastaa seuraavaa
x Merkki x, paitsi seuraavat…
\uhhhh Merkki, jonka heksadesimaaliarvo on 0xhhhh
\t Sarkainmerkki (\u0009)
\n Rivinvaihtomerkki (\u000A)
\r Vaununpalautusmerkki (\u000D)
\f Sivunvaihdon merkki (\u000C)
\a Hälytyksen (kello) merkki (\u0007)
\e Koodinvaihtomerkki (\u001b)
\cx Koodinvaihtomerkki, joka vastaa x:ää
\0n Merkki, jonka oktaaliarvo on 0n (0 <= n <= 7)
\0nn Merkki, jonka oktaaliarvo on 0nn (0 <= n <= 7)
\0mnn Merkki, jonka oktaaliarvo on 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh Merkki, jonka heksadesimaaliarvo on 0xhhhh

Taulu D.3. Regex – Lainausmerkit
Muotoilu … vastaa seuraavaa
\ Tyhjä, mutta lainaa seraavaa merkkiä Tätä tarvitaan silloin, kun haluat etsiä osumia jollekin metamerkille ( !$()*+.<>?[\]^{|} ).
\\ Esimerkiksi tämä on kenoviiva.
\Q Tyhjä, mutta lainaa kaikkia merkkejä merkkiin \E asti
\E Tyhjä, mutta päättää merkin \Q aloittaman lainauksen

Taulu D.4. Regex – Unicode-blokkien luokat ja kategoriat
Muotoilu … vastaa seuraavaa
\p{InGreek} Kreikan blokissa oleva merkki (yksinkertainen blokki)
\p{Lu} Iso kirjain (yksinkertainen kategoria)
\p{Sc} Rahayksikön tunnus
\P{InGreek} Mikä tahansa merkki paitsi kreikan blokissa oleva (negaatio)
[\p{L}&&[^\p{Lu}]] Mikä tahansa merkki paitsi iso kirjain (vähennys)

Taulu D.5. Regex – Merkkiluokat
Muotoilu … vastaa seuraavaa
[abc] a, b tai c (yksinkertainen luokka)
[^abc] Mikä tahansa merkki paitsi a, b, tai c (negaatio)
[a-zA-Z] Merkki väliltä a-z tai A-Z nämä päätymerkit mukaan lukien (alue)

Taulu D.6. Regex – Ennalta määritellyt merkkiluokat
Muotoilu … vastaa seuraavaa
. Mikä tahansa merkki (paitsi rivin päättävät merkit)
\d Numero: [0–9]
\D Muu kuin numero: [^0-9]
\s Tyhjätilamerkki: [ \t\n\x0B\f\r]
\S Muu kuin tyhjätilamerkki: [^\s]
\w Sanan merkki: [a-zA-Z_0-9]
\W Muu kuin sanan merkki: [^\w]

Taulu D.7. Regex – Alueen rajaaminen
Muotoilu … vastaa seuraavaa
^ Rivin alku
$ Rivin loppu
\b Sanaraja
\B Muu kuin sanaraja

Taulu D.8. Regex – Ahneet rajoittimet
Muotoilu … vastaa seuraavaa
X ? X, kerran tai ei kertaakaan
X * X, nolla kertaa tai useammin
X + X, yhden tai useamman kerran

Huomaa

Ahneet rajoittimet löytävät niin monta osumaa kuin vain mahdollista. Esimerkiksi a+ löytää ilmauksesta aaabbb joukon aaa.

Taulu D.9. Regex – Vastahakoiset (ei-ahneet) rajoittimet
Muotoilu … vastaa seuraavaa
X?? X, kerran tai ei kertaakaan
X*? X, nolla kertaa tai useammin
X+? X, yhden tai useamman kerran

Huomaa

Ei-ahneet rajoittimet löytävät mahdollisimman vähän osumia. Esimerkiksi a+? löytää ilmauksesta aaabbb ensimmäisen a -merkin.

Taulu D.10. Regex – Loogiset operaattorit
Muotoilu … vastaa seuraavaa
XY X ja sen jälkeen Y
X|Y Joko X tai Y
(XY) XY yhtenä ryhmänä

Regex-työkalut ja esimerkkejä niiden käytöstä

Säännöllisten lausekkeiden kehittämiseen ja testaamiseen on olemassa monia interaktiivisia työkaluja. Yleensä ne seuraavat samankaltaista rakennetta (alla on Regular Expression Tester -esimerkki): säännöllinen lauseke (ylimpänä) analysoi haettavaa tekstiä (keskellä oleva tekstilaatikko), ja löydetyt osumat näkyvät tulosten tekstilaatikossa.

Kuva D.1. Regex-testeri
Regex-testeri

The Regex Coach -ohjelmasta on versiot Windows-, Linux- ja FreeBSD-käyttöjärjestelmille. Ohjelma on paljolti samanlainen kuin yllä oleva esimerkki.

Jo OmegaT:ssä itsessään on hyvä kokoelma käytännöllisiä regex-tapauksia (ks. kohta Valinnat > Segmentointi). Seuraavalla listalla on lausekkeita, joista voi olla sinulle apua etsiessäsi osumia käännösmuistista.

Taulu D.11. Regex – Käännöksissä käytettyjen säännöllisten lausekkeiden esimerkkejä
Säännöllinen lauseke Löytää seuraavan:
(\b\w+\b)\s\1\b Kahteen kertaan kirjoitetut sanat
[\.,]\s*[\.,]+ Piste tai pilkku, jota seuraa välilyönti ja vielä yksi piste tai pilkku
\. \s+$ Pisteen jälkeen tulevat ylimääräiset välilyönnit rivin lopussa
\s+a\s+[aeiou] Koskee englantia: Vokaalilla alkavien sanojen edellä olevan artikkelin on yleensä oltava "an", ei "a"
\s+an\s+[^aeiou] Koskee englantia: Sama tarkastus kuin edellä, mutta koskee konsonantteja (artikkelina "a", ei "an")
\s{2,} Useampia välilyöntejä peräkkäin
\.[A-Z] Piste, jota seuraa iso kirjain – onkohan pisteen ja uuden lauseen alun välistä jäänyt välilyönti puuttumaan?
\bis\b Etsii sanaa is, ei this tai isn't jne.