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':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
'xx ! ! ! xbx'
Voorbeeld
Laten we alle substrings vinden volgens het patroon letter
'x', letter 'a' nul of meer
keer, letter 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
'! ! ! ! xbx'
Voorbeeld
Laten we alle substrings vinden volgens het patroon letter
'x', letter 'a' nul of één
keer, letter 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Als resultaat wordt het volgende in de variabele geschreven:
'! ! xaax xbx'
Praktische opdrachten
Gegeven een string:
let 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'.
Gegeven een string:
let 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'.
Gegeven een string:
let 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'.
Gegeven een string:
let 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.