¿Qué es una expresión regular?
Una expresión regular (regex) es un patrón que describe texto, como «cuatro dígitos, un guion y dos dígitos». Se usa para validar datos, buscar en logs, extraer valores y reemplazar texto en bloque. Este probador usa el motor JavaScript de tu navegador, así que los resultados coinciden con lo que devuelven String.prototype.match y replace en navegadores y Node.js.
Cómo usarlo
- Escribe el patrón sin las barras de alrededor y marca los flags que necesites.
- Pega el texto de prueba. Cada coincidencia se resalta, con colores alternos para distinguir las que están juntas.
- La tabla muestra la posición y los grupos de cada coincidencia. Haz clic en una fila para seleccionarla en el texto.
- Rellena «Reemplazar por» para ver el resultado. Usa
$1o$<name>para los grupos y$¶ la coincidencia completa.
Ejemplo: cambiar el formato de fechas
El patrón (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encuentra fechas como 2024-03-15 y pone nombre a sus tres partes. Al reemplazar por $<day>/$<month>/$<year> se obtiene:
15/03/2024
Referencia rápida
| Sintaxis | Significado |
|---|---|
\d | Un dígito 0-9 |
\w | Una letra, un dígito o un guion bajo |
\s | Espacio en blanco: espacio, tabulador, salto de línea |
. | Cualquier carácter salvo el salto de línea (con s: cualquiera) |
* + ? | 0 o más, 1 o más, 0 o 1 |
{2,4} | Entre 2 y 4 veces |
^ $ | Inicio y fin del texto (con m: de cada línea) |
\b | Límite de palabra |
[abc] [^abc] | Uno de a, b, c / cualquiera excepto ellos |
a|b | a o b |
(...) | Grupo de captura: $1, $2 en el reemplazo |
(?:...) | Grupo sin captura |
(?<name>...) | Grupo con nombre: $<name> en el reemplazo |
(?=...) (?!...) | Seguido de / no seguido de (lookahead) |
Preguntas frecuentes
¿Qué tipo de expresiones regulares usa?
Las de JavaScript (ECMAScript), igual que los navegadores y Node.js. La mayor parte de la sintaxis también sirve en Java, Python, PHP y Go, pero hay diferencias: Python escribe los grupos con nombre como (?P<name>...), y aquí no se admiten flags en línea como (?i) al principio del patrón; usa las casillas de flags.
¿Por qué se detuvo con un tiempo de espera?
Algunos patrones, sobre todo con cuantificadores anidados como (a+)+$, obligan al motor a probar una cantidad enorme de combinaciones («backtracking catastrófico»). El probador se ejecuta en segundo plano y se detiene a los 2 segundos para que la página siga respondiendo. Reescribe el patrón para evitar repeticiones anidadas: el mismo patrón también podría bloquear tu servidor.
¿Hay que escribir dos barras invertidas?
Aquí no: escribe \d directamente. Cuando copies el patrón dentro de una cadena en código Java, C# o JavaScript (no en un literal /.../), cada barra invertida debe escribirse dos veces, como en "\\d{4}".
¿Mi texto se envía a un servidor?
No. La búsqueda y el reemplazo ocurren por completo en tu navegador, así que puedes probar patrones con logs o datos que no deben salir de tu equipo.