Guía rápida de regex

Paso 1 / 3 33%

Elige una variante de regex

Empieza por el motor que utilizas. La referencia ocultará la sintaxis que no corresponda a esa elección.

Usa esta referencia interactiva para comparar sintaxis habitual de expresiones regulares antes de pegarla en código. Elige JavaScript, PCRE2/PHP, Python re, .NET o la vista de todos los motores; después selecciona un tema y busca entre las entradas mostradas. La referencia señala la sintaxis propia de una familia, porque un token puede compilar en un motor y ser rechazado o tener otro significado en otro. La búsqueda y la copia se realizan en el navegador, y esta página no ejecuta patrones sobre tu texto.

Cómo usar la guía rápida de regex

  1. 1

    Elige un motor

    Empieza por JavaScript, PCRE2/PHP, Python re, .NET o compáralos todos. La vista específica omite las entradas que no se aplican al motor elegido.

  2. 2

    Elige un tema

    Abre anclas, clases de caracteres, cuantificadores, grupos, aserciones, formas de patrones habituales u opciones.

  3. 3

    Busca y copia de forma local

    Busca tokens y descripciones directamente en la página y selecciona un token para copiarlo. El texto de búsqueda no se envía al servidor ni se añade a la URL.

  4. 4

    Comprueba el entorno real

    Usa el motor, las opciones y la API de tu proyecto para compilar y probar la expresión final. Esta referencia explica sintaxis; no valida datos de producción.

La compatibilidad importa

Las expresiones regulares no forman un único lenguaje universal. Esta referencia separa la sintaxis que parece similar pero no se transporta bien entre motores.

Función JavaScript RegExp PCRE2 / PHP Python re .NET
Inicio absoluto Sin \A \A \A \A
Final absoluto Sin \z \z \Z \z
Propiedad Unicode \p{L} Usa modo u o v Compatible No está en el re integrado Compatible
Captura con nombre (?<name>...) (?<name>...) o (?P<name>...) (?P<name>...) (?<name>...)
Referencia con nombre \k<name> \k<name> o (?P=name) (?P=name) \k<name>
Coincidencias globales Opción g más una API de coincidencia API repetida como preg_match_all API repetida como finditer API repetida como Matches

\d y \w requieren especial atención. En JavaScript, \d sigue siendo los dígitos ASCII 0-9, y \w es esencialmente caracteres de palabra ASCII incluso si añades u. Otros motores pueden aplicar reglas Unicode según el modo y la configuración. Si el comportamiento Unicode importa, escribe y prueba la propiedad o clase exacta que necesitas.

Anclas y límites

Token Qué expresa Nota de compatibilidad
^ Inicio de la entrada o de una línea en modo multilínea Disponible en las cuatro familias.
$ Final de la entrada o de una línea en modo multilínea Disponible en las cuatro; los detalles de la nueva línea final varían.
\b Límite de palabra Lo que cuenta como carácter de palabra depende del motor y del modo.
\A Inicio absoluto del texto PCRE2, Python y .NET; no JavaScript.
\z Final absoluto del texto PCRE2 y .NET; Python usa \Z.
\Z Final del texto en Python PCRE2 y .NET también pueden coincidir antes de una nueva línea final; usa allí \z para el final absoluto.

Grupos y aserciones

Token Significado Límite importante
(abc) Grupo de captura Disponible en las cuatro familias.
(?:abc) Grupo sin captura Disponible en las cuatro familias.
(?<name>abc) Grupo con nombre Sintaxis de JavaScript, PCRE2 y .NET.
(?P<name>abc) Grupo con nombre Sintaxis de Python; PCRE2 también la acepta.
(?=abc) / (?!abc) Anticipación positiva / negativa Disponible en las cuatro familias.
(?<=abc) / (?<!abc) Retrospección positiva / negativa Las cuatro la admiten, pero la longitud permitida varía.

La retrospección es una trampa habitual de compatibilidad. Python re necesita retrospecciones de ancho fijo. La compatibilidad de JavaScript depende del entorno que despliegues. Prueba el patrón exacto en el entorno más antiguo que admitas en lugar de depender solo de una fila de esta guía.

Formas de patrones, no validadores completos

Las entradas de patrones habituales describen formas de manera deliberada. Por ejemplo, ^\d{4}-\d{2}-\d{2}$ acepta 2026-99-99, y un patrón simple con forma de e-mail no puede aplicar el estándar completo de direcciones de correo. Tras una comprobación inicial de formato, analiza fechas, URL e identificadores estructurados con la biblioteca adecuada.

Forma Patrón de ejemplo Lo que no demuestra
Decimal con signo ^-?\d+(?:\.\d+)?$ Marcas decimales regionales, agrupación, rango o precisión numérica.
Texto con forma de e-mail ^[\w.+-]+@[\w-]+\.[\w.-]+$ Una dirección de correo entregable o plenamente conforme a estándares.
Texto con forma de URL HTTP(S) ^https?://\S+$ Una URL segura, analizable o accesible.
Forma de fecha ISO ^\d{4}-\d{2}-\d{2}$ Una fecha de calendario real.
Caracteres de slug ASCII ^[A-Za-z0-9_-]+$ Las reglas de mayúsculas, separadores o palabras reservadas de tu aplicación.

Opciones y banderas

No copies una opción sin comprobar la API anfitriona. JavaScript escribe /pattern/g, Python pasa re.I o re.X, .NET puede usar RegexOptions, y PCRE2/PHP suele usar delimitadores y modificadores finales. g es una bandera de coincidencia global de JavaScript, no un modificador de PCRE2; las coincidencias repetidas de PCRE2 se controlan normalmente mediante la API de PHP. El modo extendido (x) está disponible en PCRE2, Python y .NET, pero no como bandera de JavaScript.

Preguntas frecuentes

No. Es una referencia de sintaxis con controles de búsqueda y copia locales en el navegador. Usa un probador de regex y el entorno de tu aplicación para compilar patrones y probar entradas representativas.

Algunos tokens que parecen conocidos no son portables. Por ejemplo, el re integrado de Python usa (?P<name>…) para grupos con nombre, JavaScript usa (?<name>…), y JavaScript no admite las anclas absolutas \A ni \z.

No. En JavaScript, \d son dígitos ASCII y \w son esencialmente caracteres de palabra ASCII incluso con la opción u. Otros motores tienen modos y opciones Unicode distintos, así que prueba el comportamiento que requieren tus datos.

Trátalos solo como comprobaciones rápidas de forma. No prueban que una dirección de correo sea entregable, que una URL sea segura o accesible, ni que una fecha exista en el calendario. Para reglas de producción, usa un analizador o validador específico.

Herramientas relacionadas