Introdução
#
As Expressões Regulares (Regex) são padrões usados para combinar sequências de caracteres em strings. Elas são amplamente utilizadas em linguagens de programação, ferramentas de busca e substituição, validação de dados, etc.
Símbolos Básicos
#
| Símbolo | Descrição | Exemplo | Matches |
|---|
. | Qualquer caractere (exceto \n) | a.b | aab, acb, a1b |
\d | Dígito (0-9) | \d\d | 42, 78 |
\D | Não dígito | \D\D | ab, @# |
\w | Caractere alfanumérico (a-z, A-Z, 0-9, _) | \w\w | ab, 12, _Z |
\W | Não alfanumérico | \W\W | !!, $$ |
\s | Espaço em branco (espaço, tab, nova linha) | \s | , \t, \n |
\S | Não espaço em branco | \S\S | ab, 12 |
Quantificadores
#
| Quantificador | Descrição | Exemplo | Matches |
|---|
* | Zero ou mais ocorrências | a* | "", a, aa |
+ | Uma ou mais ocorrências | a+ | a, aa, aaa |
? | Zero ou uma ocorrência | colou?r | color, colour |
{n} | Exatamente n ocorrências | \d{3} | 123, 456 |
{n,} | No mínimo n ocorrências | \d{2,} | 12, 1234 |
{n,m} | Entre n e m ocorrências | \d{2,4} | 12, 1234 |
Âncoras
#
| Âncora | Descrição | Exemplo | Matches |
|---|
^ | Início da string | ^abc | abc123 |
$ | Fim da string | xyz$ | 123xyz |
\b | Limite de palavra | \bword\b | word, word |
\B | Não limite de palavra | \Bword\B | swordfish |
Classes de Caracteres
#
| Classe | Descrição | Exemplo | Matches |
|---|
[abc] | Qualquer caractere na lista | [abc] | a, b, c |
[^abc] | Qualquer caractere não na lista | [^abc] | d, 1, @ |
[a-z] | Intervalo de caracteres | [a-z] | a, b, …, z |
[0-9] | Intervalo de dígitos | [0-9] | 0, 1, …, 9 |
Grupos e Capturas
#
| Construção | Descrição | Exemplo | Matches |
|---|
(abc) | Grupo de captura | (abc)+ | abc, abcabc |
| `(a | b)` | Alternativa (OU) | `(cat |
\1, \2 | Referência a grupos capturados | (\d)\1 | 11, 22 |
(?:abc) | Grupo sem captura | (?:abc)+ | abc, abcabc |
Modificadores (Flags)
#
| Flag | Descrição | Exemplo | Matches |
|---|
i | Ignora maiúsculas/minúsculas | /abc/i | abc, ABC |
g | Global (todas as ocorrências) | /abc/g | Todas as abc |
m | Multilinha (^ e $ funcionam por linha) | /^abc/m | abc\nabc |
s | Ponto (.) inclui quebras de linha | /a.c/s | a\nc |
Exemplos Práticos
#
Validação de Emails
#
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Validação de Números de Telefone
#
^\+?[0-9]{1,3}?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
- Matches:
+1-800-555-5555, +55 (11) 98765-4321
https?:\/\/[^\s/$.?#].[^\s]*
- Matches:
http://example.com, https://www.site.com/path
Ferramentas Úteis
#
- Regex101 - Testador interativo de regex com explicações detalhadas.
- RegExr - Outro testador interativo com tutoriais.
- Debuggex - Visualizador gráfico de regex.
Observações Importantes
#
- Use
\ para escapar metacaracteres (\., \+, etc.) quando precisar deles como literais. - Sempre teste suas expressões regulares em diferentes cenários para garantir a precisão.
- Regex pode ser poderoso, mas também complexo. Prefira soluções simples sempre que possível.