Llaves en expresiones regulares de Python

Los operadores '+', '*', '?' son útiles, sin embargo, con ellos no se puede especificar un número concreto de repeticiones. En este caso viene en tu ayuda el operador {}.

Funciona de la siguiente manera: {5} - cinco repeticiones, {2,5} – se repite de dos a cinco (ambos inclusive), {2,} - se repite dos o más veces. Observa los ejemplos:

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' una o dos veces, letra 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Resultado de la ejecución del código:

python'xx ! ! xaaax'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' dos veces o más, letra 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Resultado de la ejecución del código:

python'xx xax ! !'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' tres veces, letra 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Resultado de la ejecución del código:

python'xx xax xaax !'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'a' diez veces:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Resultado de la ejecución del código:

python'aaa ! aaa'

Ejemplo

En este ejemplo hay un patrón así: letra 'x', letra 'a' tres veces o menos, letra 'x'. Para implementarlo, antes del número 3 no es necesario indicar un número, se puede poner simplemente una coma:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Resultado de la ejecución del código:

python'! ! ! !'

Ejemplo

El cero antes de 3 también es permitido:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Resultado de la ejecución del código:

python'! ! ! !'

Tareas prácticas

Задание 1

Se da una cadena:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Escribe una expresión regular que encuentre las cadenas 'abba', 'abbba', 'abbbba' y solo ellas.

Задание 2

Se da una cadena:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Escribe una expresión regular que encuentre las cadenas del tipo 'aba', en las que 'b' aparece menos de 3 veces (inclusive).

Задание 3

Se da una cadena:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Escribe una expresión regular que encuentre las cadenas del tipo 'aba', en las que 'b' aparece más de 4 veces (inclusive).