Teckenupprepningsoperatorer i reguljära uttryck

Det finns situationer när man behöver ange att ett tecken upprepas ett visst antal gånger. Om det exakta antalet upprepningar är okänt, kan man helt enkelt skriva det flera gånger - 'aaaa'. Men vad gör man om man behöver 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å det tecken 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 bokstaven 'x', bokstaven 'a' en eller flera gånger, bokstaven 'x':

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)

print(res)

Resultat av kodkörning:

python'xx ! ! ! xbx'

Exempel

Låt oss hitta alla delsträngar enligt mönstret bokstaven 'x', bokstaven 'a' noll eller flera gånger, bokstaven 'x':

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)

print(res)

Resultat av kodkörning:

python'! ! ! ! xbx'

Exempel

Låt oss hitta alla delsträngar enligt mönstret bokstaven 'x', bokstaven 'a' noll eller en gång, bokstaven 'x':

pythontxt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)

print(res)

Resultat av kodkörning:

python'! ! xaax xbx'

Praktiska uppgifter

Задание 1

Given en sträng:

pythontxt = 'aa aba abba abbba abca abea'

Skriv ett reguljärt uttryck som hittar strängarna 'aba', 'abba', 'abbba' enligt mönstret: bokstaven 'a', bokstaven 'b' valfritt antal gånger, bokstaven 'a'.

Задание 2

Given en sträng:

pythontxt = 'aa aba abba abbba abca abea'

Skriv ett reguljärt uttryck som hittar strängarna 'aa', 'aba', 'abba', 'abbba' enligt mönstret: bokstaven 'a', bokstaven 'b' valfritt antal gånger (inklusive noll gånger), bokstaven 'a'.

Задание 3

Given en sträng:

pythontxt = 'aa aba abba abbba abca abea'

Skriv ett reguljärt uttryck som hittar strängarna 'aa', 'aba' enligt mönstret: bokstaven 'a', bokstaven 'b' en gång eller ingång, bokstaven 'a'.

Задание 4

Given en sträng:

pythontxt = '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'.