Las expresiones regulares son una herramienta esencial en Python para buscar, validar y transformar texto. Se implementan a través del módulo estándar re, que proporciona funciones como search(), match(), findall(), split() o sub().
Puedes experimentar tus expresiones directamente en regex101.com seleccionando el motor Python.
Clases de Caracteres
Expresión
Descripción
[ABC]
Coincide con cualquiera de los caracteres dentro de los corchetes.
[^ABC]
Coincide con cualquier carácter que no esté en el conjunto.
[A-Z]
Coincide con un carácter dentro del rango especificado (inclusive).
.
Coincide con cualquier carácter, excepto el salto de línea (\n). Puede incluirlo si se usa la bandera re.S.
\w
Coincide con un carácter de palabra (letra, número o guion bajo). Equivalente a [A-Za-z0-9_].
\W
Coincide con cualquier carácter que no sea de palabra.
\d
Coincide con un dígito (0–9).
\D
Coincide con cualquier carácter que no sea un dígito.
\s
Coincide con un carácter de espacio en blanco (espacio, tab, salto de línea, retorno de carro, etc.).
\S
Coincide con cualquier carácter que no sea espacio en blanco.
\n, \r, \t, \f, \v
Coinciden con salto de línea, retorno de carro, tabulación, salto de página y tabulación vertical, respectivamente.
\xFF
Coincide con el carácter cuyo valor hexadecimal es FF.
\uFFFF
Coincide con el carácter Unicode especificado (por ejemplo \u00F1 → ñ).
Anclas
Expresión
Descripción
^
Coincide con el inicio de la cadena o de una línea (si se usa re.M).
$
Coincide con el final de la cadena o de una línea (si se usa re.M).
\b
Coincide con un límite de palabra (entre un carácter de palabra y uno que no lo es).
\B
Coincide con una posición que no sea límite de palabra.
\A
Coincide solo al inicio de toda la cadena (no afectado por re.M).
\Z
Coincide solo al final de toda la cadena (no afectado por re.M).
Grupos de Captura
Expresión
Descripción
(ABC)
Agrupa tokens y crea un grupo de captura.
(?P<nombre>ABC)
Grupo de captura con nombre, referenciable como (?P=nombre) o \g<nombre> en reemplazos.
\1, \2, \3
Referencias a grupos de captura por número.
(?:ABC)
Grupo no capturante: agrupa sin guardar coincidencias.
Lookaround (búsquedas anticipadas y retrospectivas)
Expresión
Descripción
(?=ABC)
Lookahead positivo: coincide si después del patrón actual está ABC.
(?!ABC)
Lookahead negativo: coincide si no hay ABC después.
(?<=ABC)
Lookbehind positivo: coincide si antes del patrón está ABC.
(?<!ABC)
Lookbehind negativo: coincide si no hay ABC antes.
Cuantificadores y Alternancia
Expresión
Descripción
+
1 o más repeticiones del token anterior.
*
0 o más repeticiones del token anterior.
?
0 o 1 del token anterior (opcional).
{n}
Exactamente n repeticiones.
{n,}
n o más repeticiones.
{n,m}
Entre n y m repeticiones.
+?, *?, ??, {n,m}?
Cuantificadores no codiciosos (buscan la menor coincidencia posible).
`
`
Sustitución (Reemplazo en re.sub())
Expresión
Descripción
\1, \2, …
Inserta el texto del grupo de captura correspondiente.
\g<nombre>
Inserta el texto del grupo con nombre.
\\
Inserta un carácter \ literal.
\n, \r, \t
Caracteres de escape comunes.
Banderas en Python (re)
Bandera
Descripción
re.I o re.IGNORECASE
Ignora mayúsculas y minúsculas.
re.M o re.MULTILINE
^ y $ coinciden al inicio y final de cada línea.
re.S o re.DOTALL
Hace que . coincida también con saltos de línea.
re.U o re.UNICODE
Interpreta \w, \W, \b y \B según Unicode (activado por defecto en Python 3).
re.X o re.VERBOSE
Permite escribir expresiones legibles con espacios y comentarios.
re.A o re.ASCII
Hace que \w, \b, \d y \s solo reconozcan caracteres ASCII.