Kommandot 'eller' i reguljära uttryck i Python

Kommandot '|', som representerar ett kraftfullare alternativ för 'eller' jämfört med kommandot [ ]. Detta kommando möjliggör att dela upp det reguljära uttrycket i flera delar. Det sökta kan då matcha antingen en del av uttrycket eller en annan del. Låt oss titta på exempel.

Exempel

I detta exempel är sökmönstret så här: tre bokstäver 'a' eller tre bokstäver 'b':

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

print(res)

Resultat av kodkörning:

python'! ! abb'

Exempel

I detta exempel är sökmönstret så här: tre bokstäver 'a' eller från 1 och fler bokstäver 'b':

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

print(res)

Resultat av kodkörning:

python'! ! ! ! axx'

Exempel

I detta exempel är sökmönstret så här: en eller fler bokstäver eller tre siffror:

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

print(res)

Resultat av kodkörning:

python'! ! ! 1 12 !'

Exempel

Det vertikala strecket kan dela upp det reguljära uttrycket i inte bara två delar, utan i valfritt antal delar:

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

print(res)

Resultat av kodkörning:

python'! ! ! ddd'

Exempel

Om det vertikala strecket står inom runda parenteser, så fungerar 'eller' endast inuti dessa parenteser.

Låt oss som exempel hitta strängar enligt följande mönster: i början står antingen 'a', eller 'b' en eller fler gånger, och sedan två bokstäver 'x':

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

print(res)

Resultat av kodkörning:

python'! ! ! exx'

Praktiska uppgifter

Задание 1

Given en sträng:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skriv ett reguljärt uttryck som hittar strängar enligt mönstret: vid kanterna står bokstäverna 'a', och mellan dem - antingen bokstaven 'e' valfritt antal gånger eller bokstaven 'x' valfritt antal gånger.

Задание 2

Given en sträng:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skriv ett reguljärt uttryck som hittar strängar enligt mönstret: vid kanterna står bokstäverna 'a', och mellan dem - antingen bokstaven 'e' två gånger eller bokstaven 'x' valfritt antal gånger.