Guía rápida de regex
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
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
Elige un tema
Abre anclas, clases de caracteres, cuantificadores, grupos, aserciones, formas de patrones habituales u opciones.
-
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
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
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Formateador de JSON
Pega JSON para verlo con sangría de 2 o 4 espacios, minificarlo en una salida compacta o comprobar rápidamente la sintaxis antes de copiar el resultado.
Simplificador de Álgebra Booleana
Evalúa una expresión booleana para cada combinación de entradas y muestra la tabla de verdad completa. Admite hasta cinco variables y los operadores &, |, ! y ^.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.