Resumo de Expressões Regulares

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.