El comando 'o' en las expresiones regulares de Python

El comando '|', que representa una versión más potente de 'o' en comparación con el comando [ ]. Este comando permite dividir la expresión regular en varias partes. En este caso, lo buscado puede encajar bien en una parte de la expresión regular, o en otra. Veamos algunos ejemplos.

Ejemplo

En este ejemplo, el patrón de búsqueda es el siguiente: tres letras 'a' o tres letras 'b':

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

print(res)

Resultado de la ejecución del código:

python'! ! abb'

Ejemplo

En este ejemplo, el patrón de búsqueda es el siguiente: tres letras 'a' o desde 1 o más letras 'b':

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

print(res)

Resultado de la ejecución del código:

python'! ! ! ! axx'

Ejemplo

En este ejemplo, el patrón de búsqueda es el siguiente: una o más letras o tres dígitos:

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

print(res)

Resultado de la ejecución del código:

python'! ! ! 1 12 !'

Ejemplo

La barra vertical puede dividir la expresión regular no en dos partes, sino en cualquier cantidad de partes:

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

print(res)

Resultado de la ejecución del código:

python'! ! ! ddd'

Ejemplo

Si la barra vertical está dentro de paréntesis, entonces 'o' funciona solo dentro de esos paréntesis.

Como ejemplo, busquemos cadenas según el siguiente patrón: al principio hay o 'a', o 'b' una o más veces, y luego dos letras 'x':

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

print(res)

Resultado de la ejecución del código:

python'! ! ! exx'

Problemas prácticos

Задание 1

Dada la cadena:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Escriba una expresión regular que encuentre las cadenas según el patrón: en los extremos hay letras 'a', y entre ellas - o la letra 'e' cualquier cantidad de veces o la letra 'x' cualquier cantidad de veces.

Задание 2

Dada la cadena:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Escriba una expresión regular que encuentre las cadenas según el patrón: en los extremos hay letras 'a', y entre ellas - o la letra 'e' dos veces o la letra 'x' cualquier cantidad de veces.