Krøllete parenteser i JavaScript regulære uttrykk
Operatorene '+', '*', '?'
er gode, men med dem kan man ikke spesifisere
et konkret antall repetisjoner. I dette tilfellet
vil operatoren {} komme til unnsetning.
Den fungerer som følger: {5}
- fem repetisjoner, {2,5} – gjentas
fra to til fem (begge inkludert), {2,}
- gjentas to eller flere ganger. Vær oppmerksom på
at en slik variant - {,2}
- ikke finnes. Se på eksemplene:
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'x', bokstaven 'a' en
eller to ganger, bokstaven 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xx ! ! xaaax'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'x', bokstaven 'a' to
ganger eller mer, bokstaven 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xx xax ! !'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'x', bokstaven 'a' tre
ganger, bokstaven 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xx xax xaax !'
Eksempel
I dette eksemplet ser søkemønsteret slik ut:
bokstaven 'a' ti ganger:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Resultatet som skrives til variabelen blir følgende:
'aaa ! aaa'
Eksempel
I dette eksemplet ønsket forfatteren av koden dette mønsteret:
bokstaven 'x', bokstaven 'a' tre
ganger eller mindre, bokstaven 'x',
men dessverre fungerer ikke {,3}.
Man må spesifisere eksplisitt:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'xx ! ! !'
Eksempel
Null er også tillatt:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Resultatet som skrives til variabelen blir følgende:
'! ! ! !'
Praktiske oppgaver
Gitt en streng:
let str = 'aa aba abba abbba abbbba abbbbba';
Skriv et regulært uttrykk som finner strengene
'abba', 'abbba', 'abbbba'
og bare dem.
Gitt en streng:
let str = 'aa aba abba abbba abbbba abbbbba';
Skriv et regulært uttrykk som finner strenger
av typen 'aba', der 'b' forekommer
mindre enn 3 ganger (inkludert).
Gitt en streng:
let str = 'aa aba abba abbba abbbba abbbbba';
Skriv et regulært uttrykk som finner strenger
av typen 'aba', der 'b' forekommer
mer enn 4 ganger (inkludert).