Die 'of' opdrag in Python se gereelde uitdrukkings

Die opdrag '|', wat 'n kragtiger weergawe van 'of' verteenwoordig in vergelyking met die opdrag [ ]. Hierdie opdrag laat toe dat die gereelde uitdrukking in verskeie dele verdeel word. Die gesoekte patroon kan óf onder die een deel van die gereelde uitdrukking val, óf onder die ander. Kom ons kyk na voorbeelde.

Voorbeeld

In hierdie voorbeeld is die soekpatroon soos volg: drie letters 'a' of drie letters 'b':

pythontxt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)

print(res)

Die resultaat van die kode-uitvoering:

python'! ! abb'

Voorbeeld

In hierdie voorbeeld is die soekpatroon soos volg: drie letters 'a' of vanaf 1 of meer letters 'b':

pythontxt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)

print(res)

Die resultaat van die kode-uitvoering:

python'! ! ! ! axx'

Voorbeeld

In hierdie voorbeeld is die soekpatroon soos volg: een of meer letters of drie syfers:

pythontxt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)

print(res)

Die resultaat van die kode-uitvoering:

python'! ! ! 1 12 !'

Voorbeeld

Die vertikale streep kan die gereelde uitdrukking nie net in twee dele verdeel nie, maar in enige aantal dele:

pythontxt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)

print(res)

Die resultaat van die kode-uitvoering:

python'! ! ! ddd'

Voorbeeld

As die vertikale streep binne ronde hakies verskyn, werk die 'of' slegs binne daardie hakies.

As voorbeeld, kom ons vind snare volgens die volgende patroon: aan die begin is óf 'a', óf 'b' een of meer keer, en dan twee letters 'x':

pythontxt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)

print(res)

Die resultaat van die kode-uitvoering:

python'! ! ! exx'

Praktiese probleme

Задание 1

Gegee 'n string:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skryf 'n gereelde uitdrukking wat snare sal vind volgens die patroon: aan die kante is daar letters 'a', en tussen hulle - óf die letter 'e' enige aantal kere óf die letter 'x' enige aantal kere.

Задание 2

Gegee 'n string:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skryf 'n gereelde uitdrukking wat snare sal vind volgens die patroon: aan die kante is daar letters 'a', en tussen hulle - óf die letter 'e' twee keer óf die letter 'x' enige aantal kere.