Tegn-gentagelsesoperatorer i regulære udtryk
Der opstår situationer, hvor vi ønsker at angive,
at et tegn gentages et bestemt antal gange.
Hvis vi kender det præcise antal gentagelser,
kan vi blot skrive det flere gange
- /aaaa/. Men hvad gør vi, hvis vi vil
sige sådan: gentag en eller flere gange?
Til dette findes der gentagelsesoperatorer (kvantifikatorer):
plus + (en eller flere gange),
stjerne * (nul eller flere gange) og
spørgsmålstegn ? (nul eller én gang). Disse
operatorer virker på det tegn, som
står foran dem.
Lad os se på arbejdet med disse operatorer med eksempler.
Eksempel
Lad os finde alle delstrenge efter mønsteret bogstav
'x', bogstav 'a' en eller flere
gange, bogstav 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Resultatet i variablen vil blive følgende:
'xx ! ! ! xbx'
Eksempel
Lad os finde alle delstrenge efter mønsteret bogstav
'x', bogstav 'a' nul eller flere
gange, bogstav 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Resultatet i variablen vil blive følgende:
'! ! ! ! xbx'
Eksempel
Lad os finde alle delstrenge efter mønsteret bogstav
'x', bogstav 'a' nul eller én
gang, bogstav 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Resultatet i variablen vil blive følgende:
'! ! xaax xbx'
Praktiske opgaver
Givet en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært udtryk, der finder strengene
'aba', 'abba', 'abbba'
efter mønsteret: bogstav 'a', bogstav 'b'
et hvilket som helst antal gange, bogstav 'a'.
Givet en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært udtryk, der finder strengene
'aa', 'aba', 'abba',
'abbba' efter mønsteret: bogstav 'a',
bogstav 'b' et hvilket som helst antal gange (inklusive
null gange), bogstav 'a'.
Givet en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært udtryk, der finder strengene
'aa', 'aba' efter mønsteret: bogstav
'a', bogstav 'b' én gang eller
null gange, bogstav 'a'.
Givet en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært udtryk, der finder strengene
'aa', 'aba', 'abba',
'abbba', uden at fange 'abca'
og 'abea'.