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