Ryhmittävät sulkeet JavaScriptin säännöllisissä lausekkeissa
Edellisissä esimerkeissä toistotoimijat vaikuttivat vain yhteen merkkiin, joka seisoi niiden edessä. Mitä tehdä, jos haluamme saada ne vaikuttamaan useaan merkkiin?
Tätä varten on olemassa ryhmittävät sulkeet
'(' ja . Ne toimivat seuraavasti:
jos jotain on ryhmittävissä suluissa
ja heti ')'')' jälkeen on toistotoimija
- se vaikuttaa kaikkeen, mikä on suluissa.
Katsotaanpa esimerkein.
Esimerkki
Seuraavassa esimerkissä hakumalli näyttää
tältä: kirjain 'x', sitten merkkijono 'ab'
yksi tai useampi kerta, sitten kirjain 'x':
let str = 'xabx xababx xaabbx'
let res = str.replace(/x(ab)+x/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! xaabbx'
Käytännön tehtävät
Annettu merkkijono:
let str = 'ab abab abab abababab abea';
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
mallin mukaan: merkkijono 'ab' toistuu
1 tai useamman kerran.