Aaltosulkeet JavaScriptin säännöllisissä lausekkeissa

Operaattorit '+', '*', '?' ovat hyviä, mutta niillä ei voida määrittää tarkkaa toistomäärää. Tässä tapauksessa operaattori {} tulee apuun.

Se toimii seuraavasti: {5} - viisi toistoa, {2,5} – toistuu kahdesta viiteen (mukaan lukien molemmat), {2,} - toistuu kaksi kertaa tai useammin. Huomaa, että tällaista muotoa - {,2} - ei ole. Katso esimerkkejä:

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: kirjain 'x', kirjain 'a' yksi tai kaksi kertaa, kirjain 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'xx ! ! xaaax'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: kirjain 'x', kirjain 'a' kaksi kertaa tai useammin, kirjain 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'xx xax ! !'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: kirjain 'x', kirjain 'a' kolme kertaa, kirjain 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'xx xax xaax !'

Esimerkki

Tässä esimerkissä hakumalli näyttää tältä: kirjain 'a' kymmenen kertaa:

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'aaa ! aaa'

Esimerkki

Tässä esimerkissä koodin kirjoittaja halusi tällaisen mallin: kirjain 'x', kirjain 'a' kolme kertaa tai vähemmän, kirjain 'x', mutta valitettavasti tämä - {,3} - ei toimi. Se on ilmoitettava eksplisiittisesti:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'xx ! ! !'

Esimerkki

Nolla on myös sallittu:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

Tuloksena muuttujaan kirjoitetaan seuraava:

javascript'! ! ! !'

Käytännön tehtävät

Задание 1

Annettu merkkijono:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Kirjoita säännöllinen lauseke, joka löytää merkkijonot 'abba', 'abbba', 'abbbba' ja vain ne.

Задание 2

Annettu merkkijono:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Kirjoita säännöllinen lauseke, joka löytää merkkijonot muotoa 'aba', joissa 'b' esiintyy vähemmän kuin 3 kertaa (mukaan lukien).

Задание 3

Annettu merkkijono:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Kirjoita säännöllinen lauseke, joka löytää merkkijonot muotoa 'aba', joissa 'b' esiintyy enemmän kuin 4 kertaa (mukaan lukien).