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