Módulo re de Python
El módulo re te permite buscar, comparar, dividir y reemplazar texto usando expresiones regulares.
import re
Las expresiones regulares son patrones para texto. Usa cadenas en bruto, como r'\d+', para que las barras invertidas se pasen correctamente al motor de expresiones regulares.
search()
search encuentra la primera coincidencia en cualquier parte de la cadena.
import re
match = re.search(r'\d+', 'Order #12345 shipped')
print(match.group())
12345
findall()
findall devuelve todas las coincidencias que no se superponen.
import re
emails = re.findall(r'[\w.-]+@[\w.-]+', 'a@example.com b@example.com')
print(emails)
['a@example.com', 'b@example.com']
sub()
sub reemplaza el texto coincidente.
import re
message = re.sub(r'\s+', ' ', 'too many spaces')
print(message)
too many spaces
Compilar patrones
Los patrones compilados son útiles cuando reutilizas la misma expresión.
import re
pattern = re.compile(r'^python', re.IGNORECASE)
print(bool(pattern.match('Python Cheatsheet')))
True
Grupos de captura
Los paréntesis capturan una parte de la coincidencia.
import re
match = re.search(r'(\w+)=(\d+)', 'count=42')
print(match.group(1))
print(match.group(2))
count
42
Manejar la ausencia de coincidencia
Comprueba siempre si existe una coincidencia antes de llamar a group().
import re
match = re.search(r'\d+', 'no number here')
if match:
print(match.group())
else:
print('No match')
No match