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