Probador de expresiones regulares
Escribe un patrón y un texto de prueba: las coincidencias se marcan mientras escribes. Usa el motor de JavaScript, el mismo de Node y los navegadores.
Todo ocurre en tu navegador. No se envía nada.Patrón y texto
$& es toda la coincidencia, $1 el primer grupo y $<nombre> un grupo con nombre.
Coincidencias
Vista previa del reemplazo
Chuleta de sintaxis
.Cualquier carácter menos salto de línea\d \DUn dígito / lo que no sea dígito\w \WLetra sin tilde, número o _ / lo contrario\s \SEspacio, tab o salto / lo contrario[abc]Uno de esos caracteres[^abc]Cualquiera menos esos[a-zñ]Un rango (agrega ñ y tildes a mano)^ $Inicio y fin del texto (o de la línea con m)\bBorde de palabra* + ?0 o más / 1 o más / 0 o 1{3} {2,5}Exactamente 3 / entre 2 y 5*? +?Versión perezosa: toma lo mínimo(abc)Grupo que captura(?:abc)Grupo que no captura(?<n>abc)Grupo con nombrea|bUna cosa o la otra(?=a) (?!a)Seguido de / no seguido de(?<=a) (?<!a)Precedido de / no precedido de\1 \k<n>Repite lo capturado por un grupo\. \( \\Carácter especial literal\p{L}Cualquier letra, con tildes (requiere u)Banderas
gGlobal: todas las coincidencias, no solo la primeraiIgnora mayúsculas y minúsculasmMultilínea: ^ y $ valen en cada líneasEl punto también toma saltos de líneauUnicode: emojis y \p{...} funcionan bienyPegajosa: solo busca justo donde terminó la anteriorCómo funciona el probador
Cada vez que cambias el patrón, las banderas o el texto, buscamos todas las coincidencias y las marcamos en el texto. En la tabla ves la posición de cada una y lo que capturó cada grupo.
Las coincidencias vacías (por ejemplo, con a*) se muestran como una línea delgada y avanzamos un carácter para no quedarnos en un bucle infinito.
La búsqueda corre en segundo plano con un límite de tiempo. Si una expresión tarda demasiado, la detenemos y te avisamos: suele ser un caso de retroceso catastrófico, como (a+)+$.
Preguntas frecuentes
¿Por qué \w no toma la ñ ni las tildes?
En JavaScript \w solo incluye letras del inglés. Usa [\wáéíóúüñÁÉÍÓÚÜÑ] o, con la bandera u, \p{L} para cualquier letra.
¿Sirve para PHP o Python?
Lo básico es igual en todos. Cambian detalles: en PHP el patrón va entre delimitadores ('/.../u') y Python usa (?P<nombre>...) para grupos con nombre.
¿La expresión de RUT valida el dígito verificador?
No. Una expresión regular solo revisa la forma. Para el dígito hay que calcular el módulo 11, como hace nuestro validador de RUT.
¿Por qué mi patrón no encuentra nada en varias líneas?
Si usas ^ y $, activa la bandera m para que valgan en cada línea. Si usas . para cruzar saltos de línea, activa s.