Padrão Regex
JSPCRE
//
Resultado
Sem correspondênciaClasses de Caracteres
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \d | Dígito [0-9] | ✅ | ✅ | ✅ | ✅ |
| \D | Não-dígito [^0-9] | ✅ | ✅ | ✅ | ✅ |
| \w | Caractere de palavra [a-zA-Z0-9_] | ✅ | ✅ | ✅ | ✅ |
| \W | Caractere não-palavra | ✅ | ✅ | ✅ | ✅ |
| \s | Espaço em branco | ✅ | ✅ | ✅ | ✅ |
| \S | Não-espaço | ✅ | ✅ | ✅ | ✅ |
| . | Qualquer caractere (exceto nova linha) | ✅ | ✅ | ✅ | ✅ |
| [abc] | Classe de caracteres (a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [^abc] | Classe negada (não a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [[:alpha:]] | Classe POSIX alfa | ❌ | ✅ | ✅ | ❌ |
| [[:digit:]] | Classe POSIX dígito | ❌ | ✅ | ✅ | ❌ |
| \p{L} | Letra Unicode | ✅ | ✅ | ⚠️ | ✅ |
| \p{N} | Número Unicode | ✅ | ✅ | ⚠️ | ✅ |
| \X | Cluster grafémico estendido Unicode | ❌ | ✅ | ❌ | ❌ |
Quantificadores
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| * | Zero ou mais | ✅ | ✅ | ✅ | ✅ |
| + | Um ou mais | ✅ | ✅ | ✅ | ✅ |
| ? | Zero ou um | ✅ | ✅ | ✅ | ✅ |
| {n} | Exatamente n vezes | ✅ | ✅ | ✅ | ✅ |
| {n,m} | Entre n e m vezes | ✅ | ✅ | ✅ | ✅ |
| *? | Zero ou mais (preguiçoso) | ✅ | ✅ | ✅ | ✅ |
| +? | Um ou mais (preguiçoso) | ✅ | ✅ | ✅ | ✅ |
| ?? | Zero ou um (preguiçoso) | ✅ | ✅ | ✅ | ✅ |
| {n,m}? | Entre n e m (preguiçoso) | ✅ | ✅ | ✅ | ✅ |
| *+ | Zero ou mais (possessivo) | ❌ | ✅ | ❌ | ✅ |
| ++ | Um ou mais (possessivo) | ❌ | ✅ | ❌ | ✅ |
| ?+ | Zero ou um (possessivo) | ❌ | ✅ | ❌ | ✅ |
Âncoras
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| ^ | Início da string (início de linha em multiline) | ✅ | ✅ | ✅ | ✅ |
| $ | Fim da string (fim de linha em multiline) | ✅ | ✅ | ✅ | ✅ |
| \b | Limite de palavra | ✅ | ✅ | ✅ | ✅ |
| \B | Não-limite de palavra | ✅ | ✅ | ✅ | ✅ |
| \A | Início absoluto da string | ❌ | ✅ | ✅ | ✅ |
| \Z | Fim absoluto (antes de nova linha) | ❌ | ✅ | ✅ | ✅ |
| \z | Fim real (após nova linha) | ❌ | ✅ | ✅ | ❌ |
| \G | Fim da correspondência anterior | ❌ | ✅ | ✅ | ✅ |
Grupos e Referências
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (...) | Grupo de captura | ✅ | ✅ | ✅ | ✅ |
| (?:...) | Grupo não-capturante | ✅ | ✅ | ✅ | ✅ |
| (?<name>...) | Grupo nomeado (estilo JS/Java) | ✅ | ⚠️ | ✅ | ✅ |
| (?P<name>...) | Grupo nomeado (estilo Python) | ❌ | ✅ | ✅ | ❌ |
| \1 | Retroreferência ao grupo N | ✅ | ✅ | ✅ | ✅ |
| $1 | Referência de substituição ao grupo N | ✅ | ❌ | ❌ | ✅ |
| \k<name> | Retroreferência nomeada | ✅ | ✅ | ✅ | ✅ |
| (?|...) | Grupo de reinício de ramo | ❌ | ✅ | ❌ | ❌ |
| (?>...) | Grupo atômico (sem retrocesso) | ❌ | ✅ | ❌ | ✅ |
Lookaround
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?=...) | Lookahead positivo | ✅ | ✅ | ✅ | ✅ |
| (?!...) | Lookahead negativo | ✅ | ✅ | ✅ | ✅ |
| (?<=...) | Lookbehind positivo | ✅ | ✅ | ✅ | ✅ |
| (?<!...) | Lookbehind negativo | ✅ | ✅ | ✅ | ✅ |
Modificadores
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?i) | Insensível a maiúsculas | ✅ | ✅ | ✅ | ✅ |
| (?-i) | Sensível a maiúsculas | ❌ | ✅ | ❌ | ⚠️ |
| (?m) | Multilinha (^/$ correspondem início/fim de linha) | ✅ | ✅ | ✅ | ✅ |
| (?s) | Dotall (. corresponde nova linha) | ✅ | ✅ | ⚠️ | ✅ |
| (?x) | Estendido (ignora espaços e # comentários) | ❌ | ✅ | ✅ | ✅ |
| (?i:...) | Insensível a maiúsculas inline | ✅ | ✅ | ❌ | ✅ |
PCRE Avançado
| Sintaxe | Significado | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \K | Reiniciar início da correspondência | ❌ | ✅ | ❌ | ❌ |
| (*SKIP) | Ignorar correspondência atual | ❌ | ✅ | ❌ | ❌ |
| (*FAIL) | Forçar falha | ❌ | ✅ | ❌ | ❌ |
| (?(cond)yes|no) | Expressão condicional | ❌ | ✅ | ❌ | ❌ |
| (?R) | Recursão do padrão completo | ❌ | ✅ | ❌ | ❌ |
| (?1) | Chamada de sub-rotina ao grupo 1 | ❌ | ✅ | ❌ | ❌ |