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.
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 |
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 |
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ä |
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.
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. |