Karaktercsoportok a JavaScript reguláris kifejezéseiben
Léteznek speciális parancsok, amelyek lehetővé teszik
egész karaktercsoportok kiválasztását. A
\d parancs a 0 és 9 közötti számjegyet jelent.
A \w parancs számjegyet, latin
betűt vagy aláhúzás jelet jelöl. A \s
parancs szóközt vagy szóköz karaktert jelent:
szóköz, sortörés, tabulátor. A parancs értéke
megfordítható nagybetűvel: például, ha \d - számjegy,
akkor \D - nem számjegy.
Példa
Keressük meg az összes számjegyet:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Az eredmény a következő lesz a változóban:
'! !! !!!'
Példa
Az ismétlési operátorok a parancs-csoportokat
egésznek tekintik, vagyis a csoportosító zárójelek
nem szükségesek. A következő példában a keresési minta
így néz ki: 0 és 9 közötti számjegy
egyszer vagy többször:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Az eredmény a következő lesz a változóban:
'! ! ! abc @@@'
Példa
A következő példában a keresési minta így néz ki:
bármi egyszer vagy többször,
de nem 0 és 9 közötti számjegy:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Az eredmény a következő lesz a változóban:
'123!3!'
Példa
Ebben a példában a keresési minta így néz ki: szóköz karakter egyszer:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Az eredmény a következő lesz a változóban:
'1!12!123!abc!@@@'
Példa
Ebben a példában a keresési minta így néz ki:
NEM szóköz karakter egyszer vagy többször.
Minden szóközökkel elválasztott részsztring
lecserélődik '!'-ra:
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Az eredmény a következő lesz a változóban:
'! ! ! ! !'
Példa
Ebben a példában a keresési minta így néz ki:
számjegy vagy betű egyszer vagy többször.
Minden, számjegyekből és betűkből álló részsztring
lecserélődik '!'-ra:
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Az eredmény a következő lesz a változóban:
'! ! ! ! @@@'
Példa
Ebben a példában a keresési minta így néz ki:
NEM számjegy és NEM betű egyszer vagy többször.
E definíció szerint esetünkben
'@@@' és minden szóköz (ők ugyanis
sem számjegyek, sem betűk) ebbe tartozik. Figyeljük meg
azt, hogy a végén egy '!' - ebbe
alakult át a ' @@@' sztring - az
előtte lévő szóközzel:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Az eredmény a következő lesz a változóban:
'1!12!123!Abc!'
Gyakorlati feladatok
Adott a következő sztring:
let str = 'a1a a2a a3a a4a a5a aba aca';
Írj reguláris kifejezést, amely megtalálja azokat a sztringeket,
amelyekben a szélein 'a' betűk állnak,
közöttük egy számjegy.
Adott a következő sztring:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Írj reguláris kifejezést, amely megtalálja azokat a sztringeket,
amelyekben a szélein 'a' betűk állnak,
közöttük tetszőleges számú számjegy.
Adott a következő sztring:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Írj reguláris kifejezést, amely megtalálja azokat a sztringeket,
amelyekben a szélein 'a' betűk állnak,
közöttük tetszőleges számú számjegy (beleértve
a nulla számjegyet is, vagyis a 'aa' sztring).
Adott a következő sztring:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Írj reguláris kifejezést, amely megtalálja a következő
formájú sztringeket: a szélein 'a'
és 'b' betűk állnak, közöttük - nem
szám és nem szóköz.
Adott a következő sztring:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Írj reguláris kifejezést, amely megtalálja a következő
formájú sztringeket: a szélein 'a'
és 'b' betűk állnak, közöttük - nem
betű, nem számjegy és nem szóköz.
Adott a következő sztring:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Írj reguláris kifejezést, amely lecserél minden szóközt
'!'-ra.