Krulhaken in reguliere expressies van JavaScript

Operatoren '+', '*', '?' zijn goed, maar met hen is het onmogelijk een specifiek aantal herhalingen aan te geven. In dit geval komt de operator {} te hulp.

Het werkt als volgt: {5} - vijf herhalingen, {2,5} – herhaalt zich van twee tot vijf (beide inclusief), {2,} - herhaalt zich twee keer of vaker. Let op dat deze variant - {,2} - niet bestaat. Bekijk de voorbeelden:

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: letter 'x', letter 'a' een of twee keer, letter 'x':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'xx ! ! xaaax'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: letter 'x', letter 'a' twee keer of vaker, letter 'x':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'xx xax ! !'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: letter 'x', letter 'a' drie keer, letter 'x':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'xx xax xaax !'

Voorbeeld

In dit voorbeeld ziet het zoekpatroon er als volgt uit: letter 'a' tien keer:

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'aaa ! aaa'

Voorbeeld

In dit voorbeeld wilde de auteur van de code zo'n patroon: letter 'x', letter 'a' drie keer of minder, letter 'x', maar helaas werkt dit - {,3} - niet. Het moet expliciet worden aangegeven:

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'xx ! ! !'

Voorbeeld

Nul is ook toegestaan:

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! ! !'

Praktische opdrachten

Задание 1

Gegeven een string:

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

Schrijf een reguliere expressie die de strings vindt 'abba', 'abbba', 'abbbba' en alleen deze.

Задание 2

Gegeven een string:

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

Schrijf een reguliere expressie die strings vindt van het type 'aba', waarin 'b' voorkomt minder dan 3 keer (inclusief).

Задание 3

Gegeven een string:

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

Schrijf een reguliere expressie die strings vindt van het type 'aba', waarin 'b' voorkomt meer dan 4 keer (inclusief).