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

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.