Tekens Herhalingsoperatoren in RegEx

Er zijn situaties waarin we willen aangeven, dat een teken een bepaald aantal keer wordt herhaald. Als we het exacte aantal herhalingen weten, dan kunnen we het gewoon een paar keer opschrijven - /aaaa/. Maar wat te doen als we dit willen zeggen: herhaal één of meer keer?

Hiervoor bestaan herhalingsoperatoren (kwantificatoren): plus + (één of meer keer), sterretje * (nul of meer keer) en vraagteken ? (nul of één keer). Deze operatoren werken in op het teken dat ervoor staat.

Laten we de werking van deze operatoren bekijken aan de hand van voorbeelden.

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' één of meer keer, letter 'x':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'xx ! ! ! xbx'

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' nul of meer keer, letter 'x':

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

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! ! ! xbx'

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' nul of één keer, letter 'x':

javascriptlet str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');

Als resultaat wordt het volgende in de variabele geschreven:

javascript'! ! xaax xbx'

Praktische opdrachten

Задание 1

Gegeven een string:

javascriptlet str = 'aa aba abba abbba abca abea';

Schrijf een reguliere expressie die de strings 'aba', 'abba', 'abbba' vindt volgens het patroon: letter 'a', letter 'b' een willekeurig aantal keren, letter 'a'.

Задание 2

Gegeven een string:

javascriptlet str = 'aa aba abba abbba abca abea';

Schrijf een reguliere expressie die de strings 'aa', 'aba', 'abba', 'abbba' vindt volgens het patroon: letter 'a', letter 'b' een willekeurig aantal keren (inclusief geen enkele keer), letter 'a'.

Задание 3

Gegeven een string:

javascriptlet str = 'aa aba abba abbba abca abea';

Schrijf een reguliere expressie die de strings 'aa', 'aba' vindt volgens het patroon: letter 'a', letter 'b' één keer of geen enkele, letter 'a'.

Задание 4

Gegeven een string:

javascriptlet str = 'aa aba abba abbba abca abea';

Schrijf een reguliere expressie die de strings 'aa', 'aba', 'abba', 'abbba' vindt, zonder 'abca' en 'abea' te vangen.