Karakterismétlési operátorok
Vannak helyzetek, amikor azt szeretnénk megadni,
hogy egy karakter adott számú alkalommal ismétlődik.
Ha ismerjük a pontos ismétlődések számát,
akkor egyszerűen többször leírhatjuk -
/aaaa/. De mit tegyünk, ha ezt szeretnénk
mondani: ismétlődik egyszer vagy többször?
Erre vannak az ismétlési operátorok (kvantálók):
plusz + (egy vagy többször),
csillag * (nulla vagy többször) és
kérdezőjel ? (nulla vagy egyszer). Ezek
az operátorok az előttük álló karakterre
hatnak.
Nézzük meg ezeknek az operátoroknak a működését példákon keresztül.
Példa
Keressük meg az összes résztartományt a betű
'x', 'a' betű egy vagy többször,
'x' betű minta szerint:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Ennek eredményeképpen a változóba a következő íródik:
'xx ! ! ! xbx'
Példa
Keressük meg az összes résztartományt a betű
'x', 'a' betű nulla vagy többször,
'x' betű minta szerint:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Ennek eredményeképpen a változóba a következő íródik:
'! ! ! ! xbx'
Példa
Keressük meg az összes résztartományt a betű
'x', 'a' betű nulla vagy egyszer,
'x' betű minta szerint:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Ennek eredményeképpen a változóba a következő íródik:
'! ! xaax xbx'
Gyakorlati feladatok
Adott a következő sztring:
let str = 'aa aba abba abbba abca abea';
Írj reguláris kifejezést, amely megtalálja a
'aba', 'abba', 'abbba'
sztringeket a következő minta szerint: 'a' betű,
'b' betű tetszőleges számú alkalommal,
'a' betű.
Adott a következő sztring:
let str = 'aa aba abba abbba abca abea';
Írj reguláris kifejezést, amely megtalálja a
'aa', 'aba', 'abba',
'abbba' sztringeket a következő minta szerint: 'a' betű,
'b' betű tetszőleges számú alkalommal (akár
nulla is), 'a' betű.
Adott a következő sztring:
let str = 'aa aba abba abbba abca abea';
Írj reguláris kifejezést, amely megtalálja a
'aa', 'aba' sztringeket a következő minta szerint: 'a' betű,
'b' betű egyszer vagy
egyszer sem, 'a' betű.
Adott a következő sztring:
let str = 'aa aba abba abbba abca abea';
Írj reguláris kifejezést, amely megtalálja a
'aa', 'aba', 'abba',
'abbba' sztringeket anélkül, hogy megfogná
a 'abca' és 'abea' sztringeket.