Teckenupprepningsoperatorer
Det finns situationer då vi vill ange
att ett tecken upprepas ett visst antal
gånger. Om vi vet det exakta antalet upprepningar
kan vi helt enkelt skriva det flera gånger
- /aaaa/. Men vad gör vi om vi vill
säga så här: upprepa en eller flera
gånger?
För detta finns operatorer (kvantifierare)
för upprepning: plus + (en eller flera gånger),
asterisk * (noll eller flera gånger) och
frågetecken ? (noll eller en gång). Dessa
operatorer verkar på tecknet som
står före dem.
Låt oss titta på hur dessa operatorer fungerar med exempel.
Exempel
Låt oss hitta alla delsträngar enligt mönstret bokstav
'x', bokstav 'a' en eller flera
gånger, bokstav 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Som ett resultat kommer följande att skrivas till variabeln:
'xx ! ! ! xbx'
Exempel
Låt oss hitta alla delsträngar enligt mönstret bokstav
'x', bokstav 'a' noll eller flera
gånger, bokstav 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Som ett resultat kommer följande att skrivas till variabeln:
'! ! ! ! xbx'
Exempel
Låt oss hitta alla delsträngar enligt mönstret bokstav
'x', bokstav 'a' noll eller en
gång, bokstav 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Som ett resultat kommer följande att skrivas till variabeln:
'! ! xaax xbx'
Praktiska uppgifter
Given en sträng:
let str = 'aa aba abba abbba abca abea';
Skriv ett reguljärt uttryck som hittar strängarna
'aba', 'abba', 'abbba'
enligt mönstret: bokstav 'a', bokstav 'b'
valfritt antal gånger, bokstav 'a'.
Given en sträng:
let str = 'aa aba abba abbba abca abea';
Skriv ett reguljärt uttryck som hittar strängarna
'aa', 'aba', 'abba',
'abbba' enligt mönstret: bokstav 'a',
bokstav 'b' valfritt antal gånger (inklusive
inga gånger alls), bokstav 'a'.
Given en sträng:
let str = 'aa aba abba abbba abca abea';
Skriv ett reguljärt uttryck som hittar strängarna
'aa', 'aba' enligt mönstret: bokstav
'a', bokstav 'b' en gång eller
inga gånger alls, bokstav 'a'.
Given en sträng:
let str = 'aa aba abba abbba abca abea';
Skriv ett reguljärt uttryck som hittar strängarna
'aa', 'aba', 'abba',
'abbba', utan att fånga 'abca'
och 'abea'.