Guia rápido de regex
| Símbolo | Significa |
|---|---|
. | qualquer caractere (menos quebra de linha, sem a flag s) |
\d \w \s | dígito · letra, número ou _ · espaço (maiúsculas negam: \D) |
[abc] [^abc] [a-z] | um destes · nenhum destes · intervalo |
* + ? | 0 ou mais · 1 ou mais · opcional |
{3} {2,5} | exatamente 3 · de 2 a 5 vezes |
^ $ \b | início · fim · limite de palavra |
( ) (?<nome> ) (?: ) | grupo · grupo com nome · grupo sem captura |
a|b | a ou b |
(?=x) (?!x) | seguido de x · não seguido de x |
Na substituição, $1, $2 trazem o conteúdo dos grupos e $& traz a ocorrência inteira.
Usa o motor de regex do JavaScript (o mesmo do navegador e do Node.js). Os padrões prontos conferem o formato, não se o CPF, CNPJ ou e-mail existem de verdade. Para validar o dígito do CPF/CNPJ, use o validador de CPF e CNPJ.
Perguntas frequentes
O que são as flags g, i, m, s e u?
g procura todas as ocorrências (sem ela, só a primeira); i ignora maiúsculas e minúsculas; m faz ^ e $ valerem para cada linha; s faz o ponto pegar também quebras de linha; u ativa o modo unicode.
A regex daqui funciona em PHP, Python ou Java?
Na maior parte, sim: os símbolos básicos são iguais. Recursos avançados (como grupos com nome e lookbehind) mudam um pouco entre linguagens; teste no ambiente final.
Por que a página travou com uma regex?
Alguns padrões com repetições aninhadas, como (a+)+, ficam extremamente lentos em certos textos (backtracking catastrófico). Simplifique a expressão.