Herhalingsoperators voor karakters in regex

Er zijn situaties waarin u moet aangeven dat een karakter een bepaald aantal keer wordt herhaald. Als het exacte aantal herhalingen onbekend is, kan u het gewoon meerdere keren opschrijven - 'aaaa'. Maar wat te doen als u het volgende moet zeggen: herhaal één of meer keer?

Hiervoor bestaan herhalingsoperators (kwantificatoren): plus + (één of meer keer), asterisk * (nul of meer keer) en vraagteken ? (nul of één keer). Deze operators werken op het karakter dat ervoor staat.

Laten we de werking van deze operators bekijken aan de hand van voorbeelden.

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' één of meer keer, letter 'x':

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

print(res)

Resultaat van de code-uitvoering:

python'xx ! ! ! xbx'

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' nul of meer keer, letter 'x':

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

print(res)

Resultaat van de code-uitvoering:

python'! ! ! ! xbx'

Voorbeeld

Laten we alle substrings vinden volgens het patroon letter 'x', letter 'a' nul of één keer, letter 'x':

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

print(res)

Resultaat van de code-uitvoering:

python'! ! xaax xbx'

Praktische opdrachten

Задание 1

Gegeven een string:

pythontxt = 'aa aba abba abbba abca abea'

Schrijf een regex die de strings 'aba', 'abba', 'abbba' vindt volgens het patroon: letter 'a', letter 'b' elk aantal keren, letter 'a'.

Задание 2

Gegeven een string:

pythontxt = 'aa aba abba abbba abca abea'

Schrijf een regex die de strings 'aa', 'aba', 'abba', 'abbba' vindt volgens het patroon: letter 'a', letter 'b' elk aantal keren (inclusief nul keer), letter 'a'.

Задание 3

Gegeven een string:

pythontxt = 'aa aba abba abbba abca abea'

Schrijf een regex die de strings 'aa', 'aba' vindt volgens het patroon: letter 'a', letter 'b' één keer of geen, letter 'a'.

Задание 4

Gegeven een string:

pythontxt = 'aa aba abba abbba abca abea'

Schrijf een regex die de strings 'aa', 'aba', 'abba', 'abbba' vindt, zonder 'abca' en 'abea' te vangen.