Bevezetés a reguláris kifejezésekbe JavaScriptben
A reguláris kifejezések olyan parancsok komplex keresésre és cserere (vagy egyszerűen keresésre). Lehetővé tesznek nagyon érdekes dolgokat, de sajnos meglehetősen nehezek elsajátításuk.
Létezik több JavaScript metódus a
reguláris kifejezésekkel való munkavégzésre.
A replace metódus példáján kezdjük
megismerkedést velük - már ismeri ezt a
metódust: az első paraméterként azt fogadja,
hogy mit cseréljen, a második pedig azt,
hogy mire cserélje. Maga a metódus pedig
arra a stringre vonatkozik, amelyben a
csere történik:
'bab'.replace('a', '!'); // visszatér 'b!b'
Ennek a metódusnak az első paramétereként
nem csak egy stringet, hanem reguláris kifejezést
is átadhatunk. A reguláris kifejezés parancsok
egy halmaza, amely a perjelek / között
helyezkedik el. Ezeket a perjeleket reguláris
kifejezések határolóinak nevezzük.
Maga a reguláris kifejezés kétféle karakterből áll: olyanokból, amelyek önmagukat jelentik, és parancs-karakterekből, amelyeket speciális karaktereknek nevezünk.
A betűk és számok önmagukat jelentik. A
következő példában egy reguláris kifejezéssel
lecseréljük a 'a' betűt !-ra:
'bab'.replace(/a/, '!'); // visszatér 'b!b'
Viszont a pont egy speciális karakter
és bármely karaktert jelent. A
következő példában egy stringet találunk
meg a következő minta szerint:
'x' betű, majd bármely karakter, majd
is'x' betű:
'xax eee'.replace(/x.x/, '!'); // visszatér '! eee'
A határolók után írhatunk módosítókat
- olyan parancsokat, amelyek megváltoztatják
a reguláris kifejezés általános tulajdonságait.
Például a g módosító bekapcsolja a
globális keresés és csere módját - nélküle
a reguláris kifejezés csak az első egyezést
keresi meg, vele pedig az összes egyezést.
A következő példában nincs megadva a
g módosító, és a reguláris kifejezés
csak az első egyezést találja meg:
'aab'.replace(/a/, '!'); // visszatér '!ab'
Most pedig a reguláris kifejezés az összes egyezést megtalálja:
'aab'.replace(/a/g, '!'); // visszatér '!!b'
Adott egy string:
let str = 'ahb acb aeb aeeb adcb axeb';
Írjon reguláris kifejezést, amely megtalálja
a
'ahb', 'acb', 'aeb'
stringeket a következő minta szerint: 'a' betű, bármely karakter,
'b' betű.
Adott egy string:
let str = 'aba aca aea abba adca abea';
Írjon reguláris kifejezést, amely megtalálja
a
'abba', 'adca', 'abea'
stringeket a következő minta szerint: 'a' betű, 2
bármely karakter, 'a' betű.
Adott egy string:
let str = 'aba aca aea abba adca abea';
Írjon reguláris kifejezést, amely megtalálja
a
'abba' és 'abea' stringeket, anélkül, hogy
megfogná a 'adca' stringet.