Expresiones regulares

¡Claro! Aquí tienes una tabla con algunas expresiones regulares comunes en Python, junto con ejemplos de cómo usarlas:

SintaxisDescripciónEjemplo
^Inicio de la cadena^abc – Coincide con “abc” al principio de la cadena
$Fin de la cadenaxyz$ – Coincide con “xyz” al final de la cadena
.Cualquier carácter excepto nueva líneaa.b – Coincide con “aXb”, “aYb”, etc.
*0 o más repeticionesab*c – Coincide con “ac”, “abc”, “abbc”, etc.
+1 o más repeticionesab+c – Coincide con “abc”, “abbc”, etc.
?0 o 1 repeticiónab?c – Coincide con “ac” o “abc”
[]Un conjunto de caracteres[a-z] – Coincide con cualquier letra minúscula
[^]Cualquier carácter que no esté en el conjunto[^0-9] – Coincide con cualquier carácter que no sea un número
()Agrupación y creación de grupos(abc)+ – Coincide con “abc”, “abcabc”, etc.
\Escape de caracteres especiales\., \\ – Coincide con el punto “.” o la barra invertida “\”
\dDígito (equivalente a [0-9])\d{3} – Coincide con tres dígitos
\wCarácter de palabra (equivalente a [a-zA-Z0-9_])\w+ – Coincide con una o más letras, números o guiones bajos
\sCarácter de espacio en blanco\s+ – Coincide con uno o más espacios en blanco
|Alternativaa|b – Coincide con “a” o “b”

Ejemplo en Python:

import re

# Ejemplo de coincidencia con una expresión regular
pattern = re.compile(r'\d{3}-\d{2}-\d{4}')
result = pattern.match('123-45-6789')
if result:
    print("Coincidencia encontrada:", result.group())
else:
    print("No se encontró ninguna coincidencia.")

# Otro ejemplo con búsqueda y grupos
text = "La fecha de nacimiento es 01-02-2003"
match = re.search(r'(\d{2})-(\d{2})-(\d{4})', text)
if match:
    print("Día:", match.group(1))
    print("Mes:", match.group(2))
    print("Año:", match.group(3))
else:
    print("No se encontró ninguna coincidencia.")

Estos son solo ejemplos básicos, y las expresiones regulares pueden volverse más complejas según tus necesidades. Recuerda que las expresiones regulares son herramientas poderosas, pero también pueden ser complicadas. ¡Espero que esto te sea útil!


Algunos ejemplos de uso común

  1. Correo electrónico: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  2. Números de teléfono: \b\d{3}[-.\s]?\d{3}[-.\s]?\d{4}\b
  3. Fechas (DD/MM/AAAA): ^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$
  4. Enlaces web: (https?|ftp):\/\/[^\s/$.?#].[^\s]*
  5. Códigos postales: ^\d{5}(-\d{4})?$
  6. Reemplazar palabras: \b(palabra1|palabra2)\b
  7. Direcciones IP: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
  8. Hashtags en redes sociales: #\w+
  9. Contraseñas: ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$
  10. Menciones de usuarios: @\w+
  11. Filtrar URL con palabras clave: https?:\/\/\S*keyword\S*
  12. Nombres de archivos: \/([^\/]+)$
  13. Números de tarjetas de crédito: \b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b
  14. Filtrar lenguaje ofensivo: \b(palabra1|palabra2|...)\b
  15. Texto entre paréntesis: \(([^)]+)\)
  1. Validar nombres de usuario alfanuméricos: ^[a-zA-Z0-9_]{3,16}$
  2. Buscar líneas que comiencen con una palabra específica: ^palabra.*
  3. Filtrar etiquetas HTML: <[^>]+>
  4. Validar números decimales: ^\d+(\.\d+)?$
  5. Extraer contenido entre comillas: \"([^\"]*)\"
  6. Filtrar líneas que contienen solo números: ^\d+$
  7. Validar formato de dirección física: \b\d{1,5}\s\w+(\s\w+){0,2},\s\w{2}\s\d{5}(-\d{4})?\b
  8. Buscar líneas que terminen con un signo de exclamación: !$
  9. Filtrar líneas que contienen solo letras mayúsculas: ^[A-Z]+$
  10. Extraer nombres propios en un texto: \b[A-Z][a-z]*\b
  11. Validar formato de número de seguro social: ^\d{3}-\d{2}-\d{4}$
  12. Buscar líneas que empiecen con un número y terminen con una letra: ^\d.*[a-zA-Z]$
  13. Extraer líneas que contengan al menos tres vocales: (?i)\b(?:[aeiouáéíóúäëïöü]{3,})\b
  14. Validar código hexadecimal de color: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
  15. Buscar líneas que contengan una combinación específica de palabras: (palabra1|palabra2).*(otraPalabra|últimaPalabra)