# Probador de expresiones regulares (regex)

URL: https://shahid09.is-a.dev/es/tools/regex-tester/
Author: Muhammad Shahid (https://shahid09.is-a.dev/)
Herramienta gratis · funciona en tu navegador

Prueba una expresión regular con tu texto y ve cada coincidencia, su posición y los grupos capturados, con un reemplazo opcional.

**Respuesta rápida:** Escribe una expresión regular, elige los flags y pega tu texto. El probador lista cada coincidencia con su posición y sus grupos capturados, y muestra el resultado de un reemplazo en el que $1 es el grupo 1. Usa el motor JavaScript de tu navegador, así que lo que funciona aquí funciona en JavaScript y TypeScript; la mayoría de patrones sencillos también sirven en Python, Java y PHP.

## Cómo usarla

1. **Escribe el patrón.** Sin las barras de alrededor, por ejemplo \d{3}-\d{4}.
2. **Elige flags y pega el texto.** g busca todas las coincidencias, i ignora mayúsculas, m hace que ^ y $ coincidan en cada línea.
3. **Lee las coincidencias.** Cada coincidencia muestra su posición y grupos; añade un reemplazo para ver el texto modificado.

## Ejemplo

Buscar direcciones de email y capturar el nombre y el dominio:

Entrada:

```
Pattern: (\w+)@(\w+)\.com   Flags: g
Text:    mail sara@example.com or ali@test.com
```

Salida:

```
2 coincidencias
1. sara@example.com  @5   $1=sara  $2=example
2. ali@test.com      @25  $1=ali   $2=test
```

## Errores comunes y cómo solucionarlos

- **Invalid regular expression: Unterminated group**: Un ( no tiene su ). Cuenta los paréntesis o escapa uno literal como \(.
- **Invalid regular expression: Nothing to repeat**: Un cuantificador como *, + o ? no tiene nada delante, como en *abc. Escríbelo como \* para buscar el carácter.
- **Solo se encuentra la primera coincidencia**: El flag g está desactivado. Marca g para encontrarlas todas.
- **La página se congela**: Los cuantificadores anidados como (a+)+$ provocan backtracking catastrófico en texto que casi coincide. Quita el anidamiento o haz el patrón más específico.

## Preguntas frecuentes

### ¿Qué significan los flags g, i, m, s y u?

g busca todas las coincidencias y no solo la primera; i ignora mayúsculas; m hace que ^ y $ coincidan al principio y final de cada línea; s permite que . coincida con saltos de línea; u activa Unicode completo.

### ¿Por qué mi regex solo encuentra una coincidencia?

Sin el flag g, JavaScript se detiene en la primera. Marca g.

### ¿Cómo busco direcciones de email?

Un patrón práctico es [\w.+-]+@[\w-]+\.[\w.]+ . Validar al 100 % cualquier email con regex no es práctico; mejor envía un email de confirmación.

### ¿Cómo uso un grupo capturado en el reemplazo?

Pon parte del patrón entre paréntesis y usa $1, $2, etc. en el reemplazo. Los grupos con nombre (?<anio>\d{4}) se usan como $<anio>.

### ¿Cómo busco un punto o un paréntesis literal?

Escápalo con una barra invertida: \. busca un punto, \( un paréntesis. Sin la barra, . coincide con cualquier carácter.

### ¿Qué diferencia hay entre .* y .*?

.* es codicioso y coincide con todo lo posible; .*? es perezoso y coincide con lo mínimo. Usa la forma perezosa para parar en la primera etiqueta o comilla de cierre.

### ¿Cómo busco letras con tilde o la ñ?

\w solo incluye letras inglesas. Usa [a-záéíóúüñ] con el flag i, o \p{L} con el flag u para cualquier letra.

### ¿Sirve para regex de Python?

En gran parte. La sintaxis básica es la misma; cambian los grupos con nombre, que en Python antiguo se escriben (?P<nombre>), y algunos flags.

### ¿Por qué se congela la página con algunos patrones?

Los cuantificadores anidados como (a+)+ pueden tardar un tiempo exponencial en texto que casi coincide. Se llama backtracking catastrófico; simplifica el patrón.

### ¿Se sube mi texto?

No. La expresión regular se ejecuta en tu navegador.

## Relacionado

- [Conversor de mayúsculas y minúsculas](https://shahid09.is-a.dev/es/tools/case-converter/)
- [Formateador y validador de JSON](https://shahid09.is-a.dev/es/tools/json-formatter/)
- [Codificador y decodificador de URL](https://shahid09.is-a.dev/es/tools/url-encoder-decoder/)
