Expresión Regular
JSPCRE
//
Resultado
Sin coincidenciasClases de Caracteres
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \d | Dígito [0-9] | ✅ | ✅ | ✅ | ✅ |
| \D | No dígito [^0-9] | ✅ | ✅ | ✅ | ✅ |
| \w | Carácter de palabra [a-zA-Z0-9_] | ✅ | ✅ | ✅ | ✅ |
| \W | Carácter no palabra | ✅ | ✅ | ✅ | ✅ |
| \s | Espacio en blanco | ✅ | ✅ | ✅ | ✅ |
| \S | No espacio en blanco | ✅ | ✅ | ✅ | ✅ |
| . | Cualquier carácter (salvo nueva línea) | ✅ | ✅ | ✅ | ✅ |
| [abc] | Clase de caracteres (a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [^abc] | Clase negada (no a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [[:alpha:]] | Clase POSIX alfa | ❌ | ✅ | ✅ | ❌ |
| [[:digit:]] | Clase POSIX dígito | ❌ | ✅ | ✅ | ❌ |
| \p{L} | Letra Unicode | ✅ | ✅ | ⚠️ | ✅ |
| \p{N} | Número Unicode | ✅ | ✅ | ⚠️ | ✅ |
| \X | Clúster de grafema extendido Unicode | ❌ | ✅ | ❌ | ❌ |
Cuantificadores
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| * | Cero o más | ✅ | ✅ | ✅ | ✅ |
| + | Uno o más | ✅ | ✅ | ✅ | ✅ |
| ? | Cero o uno | ✅ | ✅ | ✅ | ✅ |
| {n} | Exactamente n veces | ✅ | ✅ | ✅ | ✅ |
| {n,m} | Entre n y m veces | ✅ | ✅ | ✅ | ✅ |
| *? | Cero o más (perezoso) | ✅ | ✅ | ✅ | ✅ |
| +? | Uno o más (perezoso) | ✅ | ✅ | ✅ | ✅ |
| ?? | Cero o uno (perezoso) | ✅ | ✅ | ✅ | ✅ |
| {n,m}? | Entre n y m (perezoso) | ✅ | ✅ | ✅ | ✅ |
| *+ | Cero o más (posesivo) | ❌ | ✅ | ❌ | ✅ |
| ++ | Uno o más (posesivo) | ❌ | ✅ | ❌ | ✅ |
| ?+ | Cero o uno (posesivo) | ❌ | ✅ | ❌ | ✅ |
Anclas
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| ^ | Inicio de cadena (inicio de línea en multiline) | ✅ | ✅ | ✅ | ✅ |
| $ | Fin de cadena (fin de línea en multiline) | ✅ | ✅ | ✅ | ✅ |
| \b | Límite de palabra | ✅ | ✅ | ✅ | ✅ |
| \B | No límite de palabra | ✅ | ✅ | ✅ | ✅ |
| \A | Inicio absoluto de cadena | ❌ | ✅ | ✅ | ✅ |
| \Z | Fin absoluto (antes de nueva línea) | ❌ | ✅ | ✅ | ✅ |
| \z | Fin real (después de nueva línea) | ❌ | ✅ | ✅ | ❌ |
| \G | Fin de la coincidencia anterior | ❌ | ✅ | ✅ | ✅ |
Grupos y Referencias
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (...) | Grupo de captura | ✅ | ✅ | ✅ | ✅ |
| (?:...) | Grupo no capturador | ✅ | ✅ | ✅ | ✅ |
| (?<name>...) | Grupo con nombre (estilo JS/Java) | ✅ | ⚠️ | ✅ | ✅ |
| (?P<name>...) | Grupo con nombre (estilo Python) | ❌ | ✅ | ✅ | ❌ |
| \1 | Retrorreferencia al grupo N | ✅ | ✅ | ✅ | ✅ |
| $1 | Referencia de reemplazo al grupo N | ✅ | ❌ | ❌ | ✅ |
| \k<name> | Retrorreferencia nombrada | ✅ | ✅ | ✅ | ✅ |
| (?|...) | Grupo de reinicio de rama | ❌ | ✅ | ❌ | ❌ |
| (?>...) | Grupo atómico (sin retroceso) | ❌ | ✅ | ❌ | ✅ |
Lookaround
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?=...) | Lookahead positivo | ✅ | ✅ | ✅ | ✅ |
| (?!...) | Lookahead negativo | ✅ | ✅ | ✅ | ✅ |
| (?<=...) | Lookbehind positivo | ✅ | ✅ | ✅ | ✅ |
| (?<!...) | Lookbehind negativo | ✅ | ✅ | ✅ | ✅ |
Modificadores
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?i) | Insensible a mayúsculas | ✅ | ✅ | ✅ | ✅ |
| (?-i) | Sensible a mayúsculas | ❌ | ✅ | ❌ | ⚠️ |
| (?m) | Multilínea (^/$ coinciden inicio/fin de línea) | ✅ | ✅ | ✅ | ✅ |
| (?s) | Dotall (. coincide nueva línea) | ✅ | ✅ | ⚠️ | ✅ |
| (?x) | Extendido (ignorar espacios y # comentarios) | ❌ | ✅ | ✅ | ✅ |
| (?i:...) | Insensible a mayúsculas en línea | ✅ | ✅ | ❌ | ✅ |
PCRE Avanzado
| Sintaxis | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \K | Reiniciar inicio de coincidencia | ❌ | ✅ | ❌ | ❌ |
| (*SKIP) | Saltar coincidencia actual | ❌ | ✅ | ❌ | ❌ |
| (*FAIL) | Forzar fallo | ❌ | ✅ | ❌ | ❌ |
| (?(cond)yes|no) | Expresión condicional | ❌ | ✅ | ❌ | ❌ |
| (?R) | Recursión del patrón completo | ❌ | ✅ | ❌ | ❌ |
| (?1) | Llamada de subrutina al grupo 1 | ❌ | ✅ | ❌ | ❌ |