Tecnologia

Tecnologia, IoT e Telecom

Guia Completo de Expressões Regulares (Regex) Sublime Text

Guia Completo de Expressões Regulares (Regex) Sublime Text

O Sublime Text é um dos editores de código mais rápidos e versáteis do mercado. Um dos seus recursos mais poderosos é o suporte avançado a Expressões Regulares (Regex) no mecanismo de Localizar e Substituir (Find & Replace).

Com o Regex ativado, você consegue transformar milhares de linhas de texto, manipular logs, reformatar bases de dados e reestruturar códigos em poucos segundos.

Neste guia completo, você encontrará uma referência prática de todos os metacaracteres, quantificadores, ancoragens e uma seleção de receitas (snippets) para o seu dia a dia.

Como Ativar o Regex no Sublime Text

Para utilizar Expressões Regulares no Sublime Text:

    1. Pressione Ctrl + H (Windows/Linux) ou Cmd + Option + F (macOS) para abrir o painel de Find and Replace.
    2. Ative o modo Regex clicando no ícone .* na barra inferior esquerda (ou use o atalho Alt + R).
    3. Certifique-se de que o modo de diferenciação de maiúsculas/minúsculas (Aa) esteja configurado conforme a sua necessidade.

1. Caracteres Fundamentais e Símbolos Especiais

Estes são os blocos básicos para construção de qualquer padrão de busca:

SímboloDescriçãoExemplo de Correspondência
.Qualquer caractere (exceto quebra de linha)a.c encontra abc, a1c, a-c
\dQualquer dígito numérico [0-9]\d\d encontra 12, 99
\DQualquer caractere não numérico\D encontra a, -, 
\wCaractere de palavra (letras, números e _)\w+ encontra variavel_1
\WCaractere não de palavra (símbolos, pontuação)\W encontra @, #, !
\sEspaço em branco (espaço, tabulação \t, quebra \n)\s+ encontra sequências de espaços
\SQualquer caractere não espaço em branco\S+ encontra textos sem espaços
\tTabulação (Tab)\t encontra a tecla Tab
\nQuebra de linha (Newline)\n encontra o fim da linha
\\Escape para buscar símbolos reservados (., *, ?, etc.)\.\$ encontra . $ literal

2. Ancoragens (Posicionamento)

As ancoragens não consomem caracteres; elas definem a posição exata no texto onde a busca deve ocorrer.

SímboloDescriçãoExemplo de Aplicação
^Início da linha^SELECT encontra linhas que começam com SELECT
$Fim da linha;$ encontra linhas que terminam com ;
\bFronteira/limite de palavra\bcat\b encontra cat (não encontra category)
\BFora do limite de palavra\Bcat\B encontra cat dentro de indicate

3. Quantificadores (Repetição)

Definem quantas vezes o caractere ou grupo anterior deve aparecer:

QuantificadorDescriçãoExemplo
*Zero ou mais vezesa* encontra ``, a, `aaa`
+Uma ou mais vezesa+ encontra a, aaa (não encontra vazio)
?Zero ou uma vez (opcional)https? encontra http e https
{n}Exatamente n vezes\d{4} encontra 2026
{n,}No mínimo n vezes\d{3,} encontra 100, 1000, 10000
{n,m}Entre n e m vezes\d{2,4} encontra números de 2 a 4 dígitos

Nota sobre busca Lazy (Gulosa vs. Preguiçosa): Por padrão, os quantificadores são greedy (gulosos) e pegam a maior combinação possível. Adicione ? ao quantificador (ex: .*?) para torná-lo lazy (preguiçoso), fazendo ele parar na primeira correspondência.

4. Grupos, Captura e Substituição

Os parênteses criam grupos de captura. No Sublime Text, você recupera esses grupos no campo Replace usando as variáveis $1, $2, $3, etc.

    • ( ... ): Grupo de captura (pode ser referenciado por $1, $2, ...).
    • (?: ... ): Grupo de não captura (agrupa sem salvar a memória).
    • $1 / $2: Referência aos grupos capturados no campo de substituição.
    • $0: Refere-se a todo o texto correspondido pela busca.

5. Lookahead e Lookbehind (Asserções de Posição)

Permitem buscar um texto apenas se ele estiver acompanhado (ou não) de outro padrão, sem incluir o acompanhamento no resultado.

TipoSintaxeDescrição
Positive Lookahead
(?=padrão)
Seguido por...
Negative Lookahead
(?
Não seguido por...
Positive Lookbehind
(?<=padrão) 
Precedido por...
Negative Lookbehind
(?
Não precedido por...

6. Receitas Práticas (Snippets de Produção)

Abaixo estão os cenários reais mais comuns de manipulação de dados no Sublime Text:

6.1. Adicionar caractere ao final de todas as linhas

    • Find: $
    • Replace: ;

6.2. Formatar milhares em números (ex: 1200013 -> 1.200.013)

    • Find: (\d)(?=(\d{3})+(?!\d))
    • Replace: $1.

6.3. Remover todas as linhas em branco

    • Find: ^\s*\n
    • Replace:(deixe em branco)

6.4. Remover espaços/tabs no final das linhas (Trailing Whitespace)

    • Find: \s+$
    • Replace:(deixe em branco)

6.7. Inverter datas (de AAAA-MM-DD para DD/MM/AAAA)

    • Find: (\d{4})-(\d{2})-(\d{2})
    • Replace: $3/$2/$1

6.8. Extrair ou identificar Endereços IP (IPv4)

    • Find: \b(?:\d{1,3}\.){3}\d{1,3}\b

7. Extrair emails de um texto

    • Find: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} 

8. Remover todas as tags HTML/XML do arquivo

    • Find: <[^>]+>
    • Replace:(deixe em branco)

9. Converter formato chave-valor para JSON

Entrada: usuario: domingos

    • Find: ^(\w+):\s*(.*)$
    • Replace: "$1": "$2",

10. Remover linhas duplicadas consecutivas

    • Find: ^(.*)$(\n\1$)+
    • Replace: $1

Dicas Rápidas de Produtividade no Sublime Text

    • Seleção múltipla instantânea: Selecione um padrão com Regex, clique em Find All (Alt + Enter), e o Sublime criará um cursor para cada ocorrência em todo o arquivo.
    • Busca em múltiplos arquivos: Pressione Ctrl + Shift + F para abrir a busca global em pastas inteiras utilizando as mesmas expressões regulares.