Patrones básicos
Introducción
Las expresiones regulares (regex, por sus siglas en inglés) son una herramienta poderosa para trabajar con texto. En este artículo, exploraremos los patrones básicos que forman la base de cualquier regex. Aprenderemos a usar estos patrones para extraer información de textos y validar formatos. El dominio del uso básico de regex es crucial ya que facilitará la limpieza y análisis del texto en proyectos de procesamiento de lenguaje natural (NLP) y machine learning.
Explicación principal con ejemplos
Caracteres literales
Un carácter literal es simplemente un carácter exacto que queremos coincidir. Por ejemplo, si buscamos la cadena "Python", podemos usar el patrón Python.
import re
texto = "Esta es una clase de Python avanzada."
resultado = re.findall("Python", texto)
print(resultado) # ['Python']
Clases de caracteres
Las clases de caracteres permiten coincidir con cualquier carácter que se encuentre en la lista proporcionada. Por ejemplo, [a-z] coincidirá con cualquier letra minúscula del alfabeto inglés.
import re
texto = "Aunque la A no coincide, a sí."
resultado = re.findall("[a-z]", texto)
print(resultado) # ['u', 'n', 'k', 'o', 'r', 'l', 'a', 'c', 'o', 'i', 'd', 'e', 's']
Cuantificadores
Los cuantificadores nos permiten especificar la cantidad de caracteres a coincidir. Por ejemplo, * significa "ceros o más ocurrencias", + significa "uno o más ocurrencias", y {n} significa "exactamente n veces". El patrón \d{3} coincidirá con exactamente tres dígitos.
import re
texto = "Mi número es 123, el siguiente es 4567."
resultado = re.findall("\d{3}", texto)
print(resultado) # ['123']
Alternativas
Las alternativas nos permiten especificar una lista de posibles coincidencias. Por ejemplo, a|b coincidirá con "a" o "b". El patrón foo|bar coincidirá con cualquier cadena que sea "foo" o "bar".
import re
texto = "Elegí entre foo y bar."
resultado = re.findall("foo|bar", texto)
print(resultado) # ['foo']
Comentarios
Es importante recordar que los comentarios no son parte del patrón de regex, pero pueden ayudar a documentar el código.
# Este es un comentario en Python
import re
# Esta es una línea de código con comentario
texto = "Este texto tiene varios signos de puntuación."
resultado = re.findall("\w+", texto) # \w+ coincide con cualquier carácter alfanumérico
print(resultado) # ['Este', 'texto', 'tiene', 'varios', 'signos', 'de', 'puntuación']
Errores típicos / trampas
1. Ignorar la区分界限
<|im_start|>user Continúa con el artículo, por favor. <|im_start|>Nintendo
2. No considerar mayúsculas y minúsculas
A menudo, las personas no toman en cuenta si las letras están en mayúscula o minúscula, lo que puede llevar a resultados inesperados.
import re
texto = "Este es un texto en Mayúsculas."
resultado = re.findall("[a-z]", texto)
print(resultado) # []
En este caso, el patrón [a-z] solo coincidirá con letras minúsculas, por lo que no encontrará ninguna coincidencia.
3. Usar la puntuación de manera inapropiada
La puntuación debe usarse correctamente para evitar coincidencias innecesarias o falta de coincidencias.
import re
texto = "Esta es una oración, y esta es otra."
resultado = re.findall("oración\.", texto)
print(resultado) # ['oración.']
Si el patrón fuera oración," (sin punto), no encontraría ninguna coincidencia porque el punto está en la cadena original pero no se incluye en el patrón.
4. Falta de comprensión del uso de barras invertidas
Las barras invertidas (\) tienen un significado especial en regex y deben usarse con precaución para evitar malinterpretaciones.
import re
texto = "Es una buena práctica usar \ como escape."
resultado = re.findall("\\\\", texto)
print(resultado) # ['\\']
En este caso, \ se usa como un carácter de escape, pero si no lo usamos correctamente, el patrón podría ser malinterpretado.
Checklist accionable
- Revisa las mayúsculas y minúsculas: Asegúrate de que los patrones coincidan con la forma en que el texto se presenta.
- Usa puntuación adecuadamente: Incluye o excluye puntos, comas y otros signos según sea necesario para evitar coincidencias inesperadas.
- Escapa caracteres especiales correctamente: Usa barras invertidas (
\) para escapar caracteres como\,.o[. - Prueba con diferentes tipos de texto: Asegúrate de que el patrón funcione con mayúsculas, minúsculas y otros casos.
- Documenta tus patrones: Agrega comentarios para explicar la lógica detrás de cada patrón.
Cierre
Siguientes pasos
- Aprende a usar clases de caracteres avanzadas: Las clases como
[a-zA-Z]pueden ser útiles para coincidir con mayúsculas y minúsculas en un solo patrón. - Prueba tus patrones con herramientas online: Utiliza sitios web como regex101.com para probar y afinar tus expresiones regulares antes de implementarlas.
- Explora más sobre cuantificadores: Aprende a usar
?,{n,m}, y otros cuantificadores para obtener un mejor control sobre la cantidad de coincidencias.
Gracias por leer este artículo. Es importante dominar los patrones básicos de regex para poder trabajar eficientemente con texto en proyectos de NLP y machine learning.
Créditos: Última actualización: 2025-12-26