Komanda 'arba' Python reguliariosiose išraiškose

Komanda '|', kuri reprezentuoja galingesnį 'arba' varianto atitikmenį, palyginti su komanda [ ]. Ši komanda leidžia padalinti reguliariąją išraišką į kelias dalis. Tuo pačiu metu ieškomas elementas gali atitikti arba vieną reguliariosios išraiškos dalį, arba kita. Pažiūrėkime į pavyzdžius.

Pavyzdys

Šiame pavyzdyje paieškos šablonas yra toks: trys raidės 'a' arba trys raidės 'b':

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

print(res)

Kodo vykdymo rezultatas:

python'! ! abb'

Pavyzdys

Šiame pavyzdyje paieškos šablonas yra toks: trys raidės 'a' arba nuo 1 iki daugiau raidžių 'b':

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

print(res)

Kodo vykdymo rezultatas:

python'! ! ! ! axx'

Pavyzdys

Šiame pavyzdyje paieškos šablonas yra toks: viena ar daugiau raidžių arba trys skaitmenys:

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

print(res)

Kodo vykdymo rezultatas:

python'! ! ! 1 12 !'

Pavyzdys

Vertikali linija gali padalinti reguliariąją išraišką ne į dvi dalis, o į bet kokį kiekį dalių:

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

print(res)

Kodo vykdymo rezultatas:

python'! ! ! ddd'

Pavyzdys

Jei vertikali linija yra apvaliuose skliaustuose, tai 'arba' veikia tik šių skliaustų ribose.

Pavyzdžiui, suraskime eilutes pagal šį šabloną: pradžioje yra arba 'a', arba 'b' vieną ar daugiau kartų, o po to dvi raidės 'x':

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

print(res)

Kodo vykdymo rezultatas:

python'! ! ! exx'

Praktinės užduotys

Задание 1

Duota eilutė:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Parašykite reguliariąją išraišką, kuri ras eilutes pagal šabloną: kraštuose yra raidės 'a', o tarp jų - arba raidė 'e' bet koks kiekis kartų arba raidė 'x' bet koks kiekis kartų.

Задание 2

Duota eilutė:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Parašykite reguliariąją išraišką, kuri ras eilutes pagal šabloną: kraštuose yra raidės 'a', o tarp jų - arba raidė 'e' du kartus arba raidė 'x' bet koks kiekis kartų.