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':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Resultado de la ejecución del código:
'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':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Resultado de la ejecución del código:
'xx xax ! !'
Ejemplo
En este ejemplo el patrón de búsqueda se ve
así: letra 'x', letra 'a'
tres veces, letra 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Resultado de la ejecución del código:
'xx xax xaax !'
Ejemplo
En este ejemplo el patrón de búsqueda se ve
así: letra 'a' diez veces:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Resultado de la ejecución del código:
'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:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Resultado de la ejecución del código:
'! ! ! !'
Ejemplo
El cero antes de 3 también es permitido:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Resultado de la ejecución del código:
'! ! ! !'
Tareas prácticas
Se da una cadena:
txt = 'aa aba abba abbba abbbba abbbbba'
Escribe una expresión regular que encuentre las cadenas
'abba', 'abbba', 'abbbba'
y solo ellas.
Se da una cadena:
txt = '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).
Se da una cadena:
txt = '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).