Krulhakies in regulêre uitdrukkings van Python

Die operateurs '+', '*', '?' is goed, maar dit is nie moontlik om daarmee 'n spesifieke aantal herhalings aan te dui nie. In hierdie geval kom die operateur {} jou te hulp.

Dit werk soos volg: {5} - vyf herhalings, {2,5} – herhaal twee tot vyf keer (albei ingesluit), {2,} - herhaal twee keer of meer. Kyk na die voorbeelde:

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon soos volg: letter 'x', letter 'a' een of twee keer, letter 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'xx ! ! xaaax'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon soos volg: letter 'x', letter 'a' twee keer of meer, letter 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'xx xax ! !'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon soos volg: letter 'x', letter 'a' drie keer, letter 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'xx xax xaax !'

Voorbeeld

In hierdie voorbeeld lyk die soekpatroon soos volg: letter 'a' tien keer:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'aaa ! aaa'

Voorbeeld

In hierdie voorbeeld is daar so 'n patroon: letter 'x', letter 'a' drie keer of minder, letter 'x'. Om dit te implementeer, kan jy voor die syfer 3 geen getal aandui nie, maar net 'n komma plaas:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'! ! ! !'

Voorbeeld

Nul voor 3 is ook toelaatbaar:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Resultaat van die kode-uitvoering:

python'! ! ! !'

Praktiese take

Задание 1

Gegewe 'n string:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Skryf 'n regulêre uitdrukking wat die strings 'abba', 'abbba', 'abbbba' en net hulle sal vind.

Задание 2

Gegewe 'n string:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Skryf 'n regulêre uitdrukking wat strings van die vorm 'aba' sal vind, waarin 'b' minder as 3 keer (ingesluit) voorkom.

Задание 3

Gegewe 'n string:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Skryf 'n regulêre uitdrukking wat strings van die vorm 'aba' sal vind, waarin 'b' meer as 4 keer (ingesluit) voorkom.