Johdonatus regular expressions -lausekkeisiin JavaScriptissä
Regular expressions -lausekkeet ovat komentoja monimutkaista etsimistä ja korvaamista varten (tai pelkästään etsimistä). Ne mahdollistavat erittäin mielenkiintoisten asioiden tekemisen, mutta valitettavasti niiden oppiminen on melko vaikeaa.
JavaScriptissä on useita menetelmiä
regular expressions -lausekkeiden käsittelyyn. Aloitamme
tutustumisen niihin esimerkkinä replace
- olet jo tutustunut tähän menetelmään: se ottaa ensimmäisenä
parametrina mitä korvataan, ja toisena
- millä korvataan. Ja itse menetelmää sovelletaan
merkkijonoon, jossa korvaus tehdään:
'bab'.replace('a', '!'); // palauttaa 'b!b'
Tämän menetelmän ensimmäiseksi parametriksi voidaan antaa
ei pelkkä merkkijono, vaan regular expression.
Regular expression ilmaistaan
komentojoukkona, joka sijaitsee kauttaviivojen / sisällä. Nämä
kauttaviivat kutsutaan rajoittimiksi regular expressions -lausekkeille.
Regular expressions -lausekkeet koostuvat kahdesta merkkityypistä: merkeistä, jotka merkitsevät itseään, ja komentomerkeistä, joita kutsutaan erikoismerkeiksi.
Kirjaimet ja numerot merkitsevät itseään. Seuraavassa
esimerkissä korvaamme regular expression -lausekkeen avulla
kirjaimen 'a' merkiksi !:
'bab'.replace(/a/, '!'); // palauttaa 'b!b'
Piste sen sijaan on erikoismerkki
ja merkitsee mitä tahansa merkkiä. Seuraavassa
esimerkissä löydämme merkkijonon seuraavan mallin mukaisesti:
kirjain 'x', sitten mikä tahansa merkki, sitten
taas kirjain 'x':
'xax eee'.replace(/x.x/, '!'); // palauttaa '! eee'
Rajoittimien jälkeen voidaan kirjoittaa modifioijat
- komennot, jotka muuttavat regular expression -lausekkeen yleisiä ominaisuuksia.
Esimerkiksi modifioija
g laittaa päälle globaalin etsintä
ja korvaus -tilan - ilman sitä regular expression etsii vain
ensimmäisen osuman, sen kanssa - kaikki osumat.
Seuraavassa esimerkissä ei ole määritelty modifioijaa
g ja regular expression löytää vain ensimmäisen
osumän:
'aab'.replace(/a/, '!'); // palauttaa '!ab'
Ja nyt regular expression löytää kaikki osumät:
'aab'.replace(/a/g, '!'); // palauttaa '!!b'
Annettu merkkijono:
let str = 'ahb acb aeb aeeb adcb axeb';
Kirjoita regular expression -lauseke, joka löytää merkkijonot
'ahb', 'acb', 'aeb'
kaavan mukaisesti: kirjain 'a', mikä tahansa merkki,
kirjain 'b'.
Annettu merkkijono:
let str = 'aba aca aea abba adca abea';
Kirjoita regular expression -lauseke, joka löytää merkkijonot
'abba', 'adca', 'abea'
kaavan mukaisesti: kirjain 'a', 2
mitä tahansa merkkiä, kirjain 'a'.
Annettu merkkijono:
let str = 'aba aca aea abba adca abea';
Kirjoita regular expression -lauseke, joka löytää merkkijonot
'abba' ja 'abea', ottaen mukaan
'adca'.