Tegngjentaksoperatører i regulære uttrykk
Det oppstår situasjoner der vi ønsker å spesifisere
at et tegn gjentas et gitt antall ganger.
Hvis vi kjenner det eksakte antallet repetisjoner,
kan vi ganske enkelt skrive det flere ganger
- /aaaa/. Men hva gjør vi hvis vi vil
si noe slikt som: gjenta én eller flere
ganger?
For dette finnes det gjentaksoperatorer
(kvantifisorere): plusstegn + (én eller flere ganger),
stjerne * (null eller flere ganger) og
spørsmålstegn ? (null eller én gang). Disse
operatorene virker på tegnet som
står foran dem.
La oss se på hvordan disse operatorene fungerer med eksempler.
Eksempel
La oss finne alle delstrenger som matcher mønsteret tegn
'x', tegn 'a' én eller flere
ganger, tegn 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Resultatet i variabelen blir følgende:
'xx ! ! ! xbx'
Eksempel
La oss finne alle delstrenger som matcher mønsteret tegn
'x', tegn 'a' null eller flere
ganger, tegn 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Resultatet i variabelen blir følgende:
'! ! ! ! xbx'
Eksempel
La oss finne alle delstrenger som matcher mønsteret tegn
'x', tegn 'a' null eller én
gang, tegn 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Resultatet i variabelen blir følgende:
'! ! xaax xbx'
Praktiske oppgaver
Gitt en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært uttrykk som finner strengene
'aba', 'abba', 'abbba'
etter mønsteret: tegn 'a', tegn 'b'
hvilket som helst antall ganger, tegn 'a'.
Gitt en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært uttrykk som finner strengene
'aa', 'aba', 'abba',
'abbba' etter mønsteret: tegn 'a',
tegn 'b' hvilket som helst antall ganger (inkludert
ingen ganger), tegn 'a'.
Gitt en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært uttrykk som finner strengene
'aa', 'aba' etter mønsteret: tegn
'a', tegn 'b' én gang eller
ingen, tegn 'a'.
Gitt en streng:
let str = 'aa aba abba abbba abca abea';
Skriv et regulært uttrykk som finner strengene
'aa', 'aba', 'abba',
'abbba', uten å fange 'abca'
og 'abea'.