Visão geral
Referência de expressões regulares seguras e portáteis para uso prático.
Sem o uso de flags (como (?s), (?m), (?i)), apenas padrões universais que funcionam de forma consistente em vários sistemas e ferramentas.
Códigos de quebra de linha e diferenças de ambiente
| Sistema |
Código de quebra de linha |
Padrão recomendado |
Observação |
| Windows |
\r\n |
\r?\n |
Compatível com CRLF e LF |
| macOS / Linux |
\n |
\r?\n |
Já cobre ambos os casos |
Pontos principais
- Para detectar ou substituir quebras de linha, use
\r?\n — funciona em Windows, macOS e Linux.
- Para extrair blocos que contêm quebras de linha, use
(?:.|\r|\n) (pois . não captura quebras de linha).
Parte 1: Sintaxe básica (por categoria)
1-1. Classes de caracteres e intervalos
| Padrão |
Significado |
Exemplo |
Resultado |
. |
Qualquer caractere exceto quebra de linha |
a.c / abc |
abc |
[abc] |
Um dos caracteres a, b ou c |
bag |
a |
[^0-9] |
Qualquer caractere que não seja número |
a1 |
a |
[A-Z0-9] |
Letra maiúscula ou número |
X8z |
X,8 |
1-2. Quantificadores (repetição)
| Padrão |
Significado |
Exemplo |
Resultado |
* |
Zero ou mais vezes |
goooogle |
goooo |
+ |
Uma ou mais vezes |
google |
oo |
? |
Zero ou uma vez |
color colour |
Ambos |
{n} |
Exatamente n vezes |
a{3} / aaa |
aaa |
{n,} |
Pelo menos n vezes |
a{2,} / aaaa |
aaaa |
{n,m} |
Entre n e m vezes |
a{2,4} / aaaaa |
aaaa |
1-3. Âncoras (posições)
| Padrão |
Significado |
Exemplo |
Resultado |
^abc |
abc no início da linha |
abc\nzabc |
abc (primeira linha) |
abc$ |
abc no final da linha |
zabc\nabc |
abc (ambas) |
\bword\b |
word como palavra isolada |
word words |
word |
\Bing |
ing não no limite de palavra |
ringing |
ing final |
1-4. Atalhos de caracteres
| Padrão |
Significado |
Exemplo |
Resultado |
\d |
Dígito [0-9] |
ver2.10 |
2,10 |
\D |
Não dígito |
a1 |
a |
\w |
Alfanumérico + sublinhado |
a_b-1 |
a_b |
\W |
Não alfanumérico |
a# |
# |
\s |
Espaço, tabulação ou quebra de linha |
a b |
espaço |
\S |
Não espaço |
a b |
a,b |
\t |
Tabulação |
a\tb |
a[TAB]b |
1-5. Caracteres especiais e escape
| Padrão |
Significado |
Exemplo |
Resultado |
\. |
Ponto literal |
a.c |
a.c |
\* |
Asterisco literal |
a*b |
a*b |
\+ |
Mais literal |
a+b |
a+b |
\? |
Interrogação literal |
what? |
what? |
\( \) |
Parênteses literais |
(test) |
(test) |
| |
Barra vertical literal |
`a |
b` |
\\ |
Barra invertida literal |
C:\\path |
\\ |
\^ |
Circunflexo literal |
^abc |
^abc |
\$ |
Sinal de dólar literal |
total$ |
$ |
\[ \] |
Colchetes literais |
[abc] |
[abc] |
\{ \} |
Chaves literais |
{a,b} |
{a,b} |
Parte 2: Agrupamento, alternância e lookaround
| Padrão |
Uso |
Exemplo |
Resultado |
(abc)+ |
Repetição de grupo |
abcabcx |
abcabc |
| `(?:jpg |
png)` |
OU sem captura |
file.png |
| `foo |
bar` |
OU normal |
bar |
\d+(?=円) |
Dígitos antes de “円” |
合計100円 |
100 |
^(?!.*error).* |
Linha sem “error” |
ok\nerror |
ok |
(?<=¥)\d+ |
Dígitos após “¥” |
¥300 |
300 |
(?<!Mr\.)\s[A-Z] |
Letra maiúscula não após “Mr.” |
Ms. Alice |
A |
Parte 3: Exemplos de correspondência multilinha
| Uso |
Padrão |
Exemplo |
Resultado |
| Bloco HTML completo |
`<div>(?:. |
\r |
\n)*?</div>` |
| Um registro de log |
`^[\d{4}-\d{2}-\d{2} [\d:]+](?:. |
\r |
\n)*?(?=^[\d{4}-\d{2}-\d{2} |
| Bloco de código Markdown |
“ “`(?:. |
\r |
\n)*?“` “ |
| Comentário C-style |
`/*(?:. |
\r |
\n)*?*/` |
Parte 4: Padrões úteis (negação e extração)
| Uso |
Padrão |
Exemplo |
Resultado |
| Somente números |
^\d+$ |
123 |
123 |
| Somente alfanuméricos |
^[A-Za-z0-9]+$ |
user01 |
user01 |
| E-mail simples |
^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$ |
a@b.com |
a@b.com |
| URL |
https?://[\w.-]+\.[A-Za-z]{2,}(/[\w./?=&%-]*)? |
https://ex.com/a |
https://ex.com/a |
| Data ISO |
\d{4}-\d{2}-\d{2} |
2025-10-30 |
2025-10-30 |
| Telefone internacional |
\+\d{1,3}[\s-]?\d{1,14} |
+81 90 1234 5678 |
completo |
| Senha forte |
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$ |
Abcd1234 |
completo |
| Comentário HTML |
`<!–(?:. |
\r |
\n)*?–>` |
| Linha sem “error” |
^(?!.*error).* |
ok\nerror |
ok |
Parte 5: Exemplos de substituição
| Tarefa |
Padrão |
Substituição |
Exemplo |
Resultado |
| Inverter ordem das palavras |
(\w+)\s+(\w+) |
${2} ${1} |
John Doe |
Doe John |
| Mudar delimitador |
; |
, |
a;b;c |
a,b,c |
| Unificar espaços |
\s{2,} |
|
a b |
a b |
| Remover tags HTML |
<[^>]+> |
“ |
<p>a</p> |
a |
| Remover espaços nas bordas |
`^\s+ |
\s+$` |
“ |
a |
| Quebra de linha → espaço |
\r?\n |
|
a\nb |
a b |
| Remover comentário no fim da linha |
//.*$ |
“ |
x=1;//note |
x=1; |
| Normalizar formato de data |
(\d{4})/(\d{2})/(\d{2}) |
${1}-${2}-${3} |
2025/10/30 |
2025-10-30 |
| Compactar linhas duplicadas |
^(.*)(\r?\n\1)+$ |
${1} |
linhas idênticas |
1 linha |
Conclusão
Expressões regulares são ferramentas universais que funcionam em vários idiomas e sistemas.
Podem ser aplicadas em scripts, análise de logs e limpeza de dados de forma confiável e portátil.