Fundamentos de regex
Um padrão regex é apenas uma forma compacta de descrever o texto que você deseja corresponder. Comece simples: corresponda a uma coisa, teste e depois adicione grupos, âncoras ou quantificadores apenas quando necessário.
Âncoras
^ significa início da entrada e $ significa fim da entrada.
Classes de caracteres
[0-9], [A-Z], e [a-z] correspondem a intervalos.
Quantificadores
* = zero ou mais, + = um ou mais, ? = opcional.
Padrões comuns
| Caso de uso | Padrão | Notas |
|---|---|---|
| ^[^\s@]+@[^\s@]+\.[^\s@]+$ | Boa validação de uso geral, não é um parser RFC completo. | |
| URL | https?:\/\/[^\s]+ | Corresponde a links HTTP e HTTPS básicos. |
| Número inteiro | ^-?\d+$ | Suporta sinal negativo opcional. |
| Número decimal | ^-?\d+(\.\d+)?$ | Corresponde a inteiros e decimais. |
| Espaços em branco | \s+ | Útil para reduzir espaços repetidos e quebras de linha. |
| Cor hexadecimal | ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ | Suporta cores de 3 e 6 dígitos. |
| IPv4 | \b(?:\d{1,3}\.){3}\d{1,3}\b | Corresponde a texto semelhante a IPv4, sem validação estrita de 0-255. |
| Linhas em branco | ^\s*$ | Use com o modo multilinha para direcionar linhas vazias. |
Flags que você mais usa
g global
Encontre todas as correspondências em vez de parar após a primeira correspondência.
i ignorar maiúsculas e minúsculas
Torna a correspondência insensível a maiúsculas e minúsculas, útil para palavras-chave e entrada do usuário.
m multilinha
Faz ^ e $ funcionar linha por linha.
s dotall
Permite . Corresponda a quebras de linha, bem como a caracteres normais.
Armadilhas comuns de regex
- Não comece com um padrão único gigante. Construa incrementalmente e teste cada parte.
- Lembre-se de escapar caracteres especiais como ., ?, +, e [ quando você quer dizer o caractere literal.
- Se você quer apenas palavras inteiras, adicione limites como \bword\b.
- Tenha cuidado com a correspondência gulosa. .* muitas vezes captura mais do que você espera.
Use esta referência com a ferramenta adequada
Consulte um padrão aqui, teste-o ao vivo, aplique-o a texto real ou use-o em um fluxo de substituição.