Skip to content

Folha de dicas de expressões regulares

Correspondência de caracteres

[abc] Corresponde a qualquer um dos caracteres a, b ou c
[^abc] Não corresponde aos caracteres a, b ou c. O “^” só é eficaz se aparecer como o primeiro caractere
[a-g] Corresponde a qualquer caractere no intervalo a-g
[^a-g] Não corresponde a nenhum caractere no intervalo a-g
[H-N] Corresponde a qualquer caractere no intervalo H-N
[0-9] Corresponde a qualquer caractere no intervalo 0-9
[a-gH-N] Corresponde a qualquer caractere nos intervalos a-g ou H-N
Curingas (Wildcards):
. [^\n\r], corresponde a qualquer caractere exceto quebra de linha
\s Espaço em branco: quebra de linha, tabulação, espaço, etc.
\S [^\s] (Qualquer coisa exceto espaços em branco)
\d Dígito: [0-9]
\D [^\d] (Qualquer coisa exceto dígitos)
\w Caractere de palavra: [0-9A-Za-z_]
\W [^\w] (Qualquer coisa exceto caracteres de palavra)

Grupos de correspondência

(a b)
(…) Grupo de captura
(?:…) Grupo de não captura
(?<name>…) ou (?’name’…) Grupo de captura nomeado, “name” pode ser personalizado
(?(condition)true_regex false_regex)

group(0) é usado para obter a string correspondente completa, enquanto group(>0) pode obter subgrupos de captura do resultado total.

Nota: grupos de captura nomeados são suportados desde o Java 1.7 (passando a string “name” como parâmetro para o método group). JS e Python não suportam grupos de captura nomeados nativamente no momento.

Faixa de frequência (Quantificadores)

{3} O item anterior aparece exatamente 3 vezes, equivalente a {3,3}
{3,6} O item anterior aparece de 3 a 6 vezes
{3,} O item anterior aparece pelo menos 3 vezes
{0,6} O item anterior aparece no máximo 6 vezes
Curingas:
* {0,} (Zero ou mais)
+ {1,} (Um ou mais)
? {0,1} (Zero ou um)
\w* Modo guloso (Greedy)
\w*? Modo não guloso

Âncoras (Fixadores de posição)

^ Início da string
$ Fim da string
\b Boundary, limite de palavra
\B Não é limite de palavra
Asserções de posição (Lookaround):
(?=exp) Asserção positiva para frente (sufixo exp)
(?<=exp) Asserção positiva para trás (prefixo exp)
(?!exp) Asserção negativa para frente (sem sufixo exp)
(?<!exp) Asserção negativa para trás (sem prefixo exp)

\b(\w+)\b é equivalente a (?<=\W?)(\w+)(?=\W?)