O comando 'ou' em expressões regulares do Python

O comando '|', que representa uma versão mais poderosa do 'ou' em comparação com o comando [ ]. Este comando permite dividir a expressão regular em várias partes. Nesse caso, a correspondência pode se encaixar em uma parte da expressão regular ou em outra. Vamos ver exemplos.

Exemplo

Neste exemplo, o padrão de busca é: três letras 'a' ou três letras 'b':

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

print(res)

O resultado da execução do código:

python'! ! abb'

Exemplo

Neste exemplo, o padrão de busca é: três letras 'a' ou de 1 ou mais letras 'b':

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

print(res)

O resultado da execução do código:

python'! ! ! ! axx'

Exemplo

Neste exemplo, o padrão de busca é: uma ou mais letras ou três dígitos:

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

print(res)

O resultado da execução do código:

python'! ! ! 1 12 !'

Exemplo

A barra vertical pode dividir a expressão regular não em duas partes, mas em qualquer quantidade de partes:

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

print(res)

O resultado da execução do código:

python'! ! ! ddd'

Exemplo

Se a barra vertical estiver dentro de parênteses, o 'ou' funciona apenas dentro desses parênteses.

Por exemplo, vamos encontrar as strings pelo seguinte padrão: no início há ou 'a', ou 'b' uma ou mais vezes, e depois duas letras 'x':

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

print(res)

O resultado da execução do código:

python'! ! ! exx'

Problemas práticos

Задание 1

Dada a string:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Escreva uma expressão regular que encontre as strings segundo o padrão: nas extremidades há letras 'a', e entre elas - ou a letra 'e' qualquer quantidade de vezes ou a letra 'x' qualquer quantidade de vezes.

Задание 2

Dada a string:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Escreva uma expressão regular que encontre as strings segundo o padrão: nas extremidades há letras 'a', e entre elas - ou a letra 'e' duas vezes ou a letra 'x' qualquer quantidade de vezes.