regex cheat-sheet programming javascript python dev-tech

Regex Cheat Sheet: Referência completa com exemplos visuais

Um guia de referência abrangente de expressões regulares com metacaracteres, quantificadores, âncoras, lookarounds e diagramas ferroviários. Perfeito para programadores e analistas de dados.

Regex Cheat Sheet: A referência definitiva

As Expressões Regulares (Regex) são incrivelmente poderosas, mas famosas por serem difíceis de dominar. Quer esteja a validar um endereço de e-mail, a extrair dados ou a pesquisar código, ter uma Regex Cheat Sheet fiável pode poupar-lhe horas de frustração.

Neste guia, analisamos cada componente regex, desde caracteres básicos a lookarounds complexos, com explicações visuais e exemplos práticos.


1. Metacaracteres principais

Estes são os blocos de construção de qualquer padrão regex.

Metacaractere Descrição Exemplo
. Corresponde a qualquer carácter individual, exceto nova linha a.b corresponde a acb, a1b
\ Escapa um carácter especial \. corresponde a um . literal
| Alternância (OU) cat|dog corresponde a cat ou dog
[] Conjunto de caracteres (qualquer carácter lá dentro) [aeiou] corresponde a qualquer vogal
[^] Conjunto de caracteres negado [^0-9] corresponde a qualquer carácter não numérico

2. Quantificadores: Controlar a frequência

Os quantificadores dizem ao motor regex quantas vezes um carácter ou grupo deve aparecer.

Quantificador Descrição Exemplo
* 0 ou mais vezes a* corresponde a ``, a, aa
+ 1 ou mais vezes a+ corresponde a a, aa
? 0 ou 1 vez (opcional) a? corresponde a `` ou a
{n} Exatamente n vezes a{3} corresponde a aaa
{n,} n ou mais vezes a{2,} corresponde a aa, aaa
{n,m} Entre n e m vezes a{2,4} corresponde a aa, aaa, aaaa

3. Classes de caracteres: Atalhos comuns

Classe Descrição Equivalente
\d Qualquer dígito [0-9]
\D Qualquer carácter não numérico [^0-9]
\w Qualquer carácter de palavra (alfanumérico + _) [a-zA-Z0-9_]
\W Qualquer carácter que não seja de palavra [^a-zA-Z0-9_]
\s Qualquer espaço em branco (espaço, tabulação, nova linha) [ \t\n\r\f\v]
\S Qualquer carácter que não seja espaço em branco [^ \t\n\r\f\v]

4. Âncoras: Definir limites

Âncora Descrição Exemplo
^ Início da string / linha ^Olá
$ Fim da string / linha Mundo$
\b Limite de palavra \bcat\b (corresponde a "cat" mas não a "category")
\B Limite não de palavra \Bcat (corresponde a "category")

5. Grupos e Captura

Sintaxe Descrição Exemplo
(...) Grupo de captura (abc)+ corresponde a abcabc
(?:...) Grupo de não-captura (?:abc)+
(?<name>...) Grupo de captura nomeado (?<id>\d+)
\1 Retroreferência ao grupo #1 (\w)\1 corresponde a aa, bb

6. Lookaround: Filtragem avançada

Os lookarounds permitem-lhe encontrar um padrão apenas se este for (ou não for) seguido ou precedido por outro padrão, sem incluir esse padrão na correspondência.

Sintaxe Nome Descrição
(?=...) Lookahead positivo Seguido por ...
(?!...) Lookahead negativo NÃO seguido por ...
(?<=...) Lookbehind positivo Precedido por ...
(?<!...) Lookbehind negativo NÃO precedido por ...

7. Visualizar Regex com diagramas ferroviários

Padrões regex complexos podem rapidamente tornar-se ilegíveis. Os Diagramas Ferroviários são uma forma visual de representar o fluxo de uma expressão regular.

Imagine uma linha de comboio:

  1. A linha divide-se numa alternância (|).
  2. A linha faz um loop para um quantificador (*, +).
  3. A linha passa por uma caixa de grupo.

Utilizar um visualizador ajuda-o a depurar erros de lógica, especialmente ao lidar com grupos aninhados ou quantificadores complexos.


8. Exemplos práticos

Validação de e-mail (Simplificada)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Palavra-passe forte (Exemplo Lookahead)

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ (Requer pelo menos uma minúscula, uma maiúscula, um dígito e 8+ caracteres)

Número de telefone (Formato US)

^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$


9. Perguntas Frequentes (FAQ)

Q: Qual é a diferença entre correspondência "Greedy" (gananciosa) e "Lazy" (preguiçosa)?

A: Por padrão, os quantificadores são greedy—eles correspondem ao máximo possível. Adicionar um ? após um quantificador (ex: .*?) torna-o lazy (ou non-greedy), significando que corresponde ao mínimo possível.

Q: Como faço uma pesquisa insensível a maiúsculas e minúsculas?

A: A maioria dos motores regex utiliza uma flag (normalmente i) para ativar a insensibilidade. Por exemplo, /ola/i corresponde a Olá, OLA e ola.

Q: O que é backtracking e porque é que é importante?

A: O backtracking ocorre quando o motor regex tenta um caminho, falha e "retrocede" para tentar outro. Padrões complexos com muitos quantificadores aninhados podem levar ao Backtracking Catastrófico, que pode bloquear a sua aplicação ou servidor.


Teste os seus padrões no Tool3M

  • Testador Regex: Testes regex em tempo real com realce e depuração visual.
  • Formatador JSON: Utilize regex para pesquisar e filtrar os seus grandes conjuntos de dados JSON.
  • Conversor de Caixa: Limpe o seu texto antes de aplicar filtros regex.