28 de março de 2025

Regex

Expressões regulares, ou regex, são uma ferramenta poderosa para buscar, validar e manipular textos. Elas são usadas em diversas linguagens de programação, editores de texto e ferramentas de linha de comando. Neste post, vamos explorar os conceitos básicos de regex, com exemplos práticos para você começar a usar essa ferramenta no seu dia a dia.


Como ler os exemplos:

Cada exemplo mostra:

  • Padrão: A expressão regular que estamos testando

  • Texto de exemplo: O texto onde vamos buscar correspondências

  • O que casa: As partes do texto que combinam com o padrão

  • O que não casa: Partes que não atendem ao padrão

  • Explicação: Por que o padrão funciona assim


1. . (Ponto) - Corresponde a qualquer caractere

Padrãoa.b
Texto de teste:

aXb
a4b
a b
axb
aaab

O que casa:

  • aXb (X é qualquer caractere)

  • a4b (4 é qualquer caractere)

  • a b (espaço é qualquer caractere)

  • axb (x é qualquer caractere)

O que não casa:

  • aaab (precisa ter exatamente um caractere entre os 'a's e 'b's)

Explicação: O ponto substitui qualquer caractere único, exceto quebra de linha.


2. * (Asterisco) - Zero ou mais ocorrências

Padrãoab*c
Texto de teste:

ac
abc
abbc
abbbbc
axc

O que casa:

  • ac (zero 'b's)

  • abc (um 'b')

  • abbc (dois 'b's)

  • abbbbc (quatro 'b's)

O que não casa:

  • axc (o padrão exige apenas 'b's entre 'a' e 'c')

Explicação: O asterisco permite que o caractere anterior apareça zero ou várias vezes.


3. + (Mais) - Uma ou mais ocorrências

Padrãoab+c
Texto de teste:

abc
abbc
abbbbc
ac
axc

O que casa:

  • abc (um 'b')

  • abbc (dois 'b's)

  • abbbbc (quatro 'b's)

O que não casa:

  • ac (precisa de pelo menos um 'b')

  • axc (só permite 'b's entre 'a' e 'c')

Explicação: O + exige pelo menos uma ocorrência do caractere anterior.


4. d (Dígito) - Encontrando números

Padrãodd-dd-dddd
Texto de teste:

Data: 25-12-2023
Aniversário: 01/01/1990
Telefone: 11-98765-4321
Código: AB12-3456

O que casa:

  • 25-12-2023 (formato DD-MM-AAAA)

O que não casa:

  • 01/01/1990 (usa barras em vez de hífens)

  • 11-98765-4321 (tem mais dígitos)

  • AB12-3456 (contém letras)

Explicaçãod encontra qualquer dígito de 0 a 9. Estamos buscando o formato de data com dois dígitos, hífen, dois dígitos, hífen, quatro dígitos.


5. [] (Conjunto de Caracteres) - Correspondendo a opções específicas

Padrão[AEIOU]migo
Texto de teste:

Amigo
Emigo
Imigo
Omigo
Umigo
amigo
Hmigo

O que casa:

  • Amigo

  • Emigo

  • Imigo

  • Omigo

  • Umigo

O que não casa:

  • amigo (a vogal precisa ser maiúscula)

  • Hmigo (H não está no conjunto)

Explicação: Os colchetes definem um conjunto de caracteres aceitáveis. Neste caso, apenas vogais maiúsculas no início.


6. () (Grupos) - Agrupando padrões

Padrão(ab)+c
Texto de teste:

abc
ababc
abababc
ac
abbc

O que casa:

  • abc (um grupo "ab")

  • ababc (dois grupos "ab")

  • abababc (três grupos "ab")

O que não casa:

  • ac (faltam os "ab")

  • abbc (o segundo "b" extra quebra o padrão)

Explicação: Os parênteses criam grupos que podem ser quantificados. O + aplica-se a todo o grupo (ab), significando "uma ou mais repetições de 'ab'".


7. ^ (Circunflexo) - Início da string

Padrão^Olá
Texto de teste:

Olá mundo
Oi, Olá
   Olá

O que casa:

  • Olá mundo (começa com "Olá")

O que não casa:

  • Oi, Olá ("Olá" não está no início)

  • Olá (espaços antes)

Explicação: O ^ verifica se o padrão ocorre no início exato da string, ignorando qualquer texto anterior.


8. $ (Cifrão) - Fim da string

Padrãomundo!$
Texto de teste:

Olá mundo!
mundo! Olá
mundo!

O que casa:

  • Olá mundo! (termina com "mundo!")

  • mundo! (termina exatamente com "mundo!")

O que não casa:

  • mundo! Olá ("mundo!" não está no final)

Explicação: O $ verifica se o padrão ocorre no final exato da string, ignorando qualquer texto posterior.


Exemplos Práticos

Para testar suas expressões regulares, recomendo o site  regex101.com  que oferece um ambiente interativo para criar e testar regex.

1. Validar um E-mail

  • Padrão: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$

  • Explicação:

    • ^[a-zA-Z0-9._%+-]+: Parte local do e-mail (antes do @).

    • @[a-zA-Z0-9.-]+: Domínio do e-mail.

    • .[a-zA-Z]{2,}$: Extensão do domínio (ex: .com.org).

2. Extrair Datas no Formato DD/MM/AAAA

  • Padrão: d{2}/d{2}/d{4}

  • Explicação:

    • d{2}: Dois dígitos para o dia e mês.

    • d{4}: Quatro dígitos para o ano.


Próximos Passos

  1. Comece com padrões simples e vá aumentando a complexidade

  2. Pratique com textos reais do seu dia a dia

  3. Explore as ferramentas de regex na sua linguagem preferida

Com esses exemplos práticos, você já pode começar a usar regex em seus projetos! Lembre-se que a prática leva à perfeição quando se trata de expressões regulares.


Dica!

Se você quer se aprofundar neste assunto, recomendo o livro Expressões Regulares: Uma Abordagem Divertida

Com uma linguagem descontraída e envolvente, o livro mantém o leitor interessado do início ao fim.

 

Visualizações: 20



Diversos

23 de março de 2025

Segurança em Aplicações Web

Neste post, vamos explorar boas práticas de segurança que você pode implementar para proteger sua aplicação web de vulnerabilidades comuns.

21 de março de 2025

Domain-Driven Design

Atacando as Complexidades no Coração do Software

18 de março de 2025

Conceitos Básicos da Internet

Tudo o que Você Precisa Saber para Entender como a Internet Funciona

14 de março de 2025

Como Escrever Código Limpo e Fácil de Manter

Dicas Essenciais para Desenvolvedores.

03 de março de 2025

Introdução ao Docker

Simplificando Ambientes de Desenvolvimento com Docker.

27 de fevereiro de 2025

Introdução ao Git e GitHub para Iniciantes

Comece a versionar seu código hoje!

05 de abril de 2016

Inserir botão Doar do Pagseguro em seu Wordpress

Aprenda a inserir o botão Doar do Pagseguro em seu hospedado no Wordpress.com

Sérgio Toledo | Engenheiro de Software | LinkedIn | GitHub | YouTube

Todos os direitos reservados ©