ClipaTec Informática

Receba novidades por e-mail. Digite seu e-mail abaixo e clique no botão "Cadastrar"

Delivered by FeedBurner

19 de junho de 2024

Regex - Introdução às Expressões Regulares

expressões regulares - regex

Fala dev! Provavelmente você já deve ter ouvido falar sobre expressões regulares ou regex, mas que diabos é isso? Para que serve?

Neste artigo, daremos uma introdução sobre o assunto, entender seus elementos e como aplicar esse recurso em validação de dados.

O que são Expressões Regulares?

Expressões regulares, também conhecida como regex ou regexp são sequências de caracteres que formam um padrão de busca. É um excelente recurso para buscar, manipular e validar texto com base em padrões específicos, ou seja, elas são utilizadas para corresponder strings ou partes de strings que seguem um determinado formato.

Sua origem se deu na década de 1950, e hoje são amplamente utilizadas em diversas linguagens de programação devido à sua capacidade de simplificar operações complexas de manipulação de strings.

Uma regex é composta de vários elementos, como caracteres literais, metacaracteres e quantificadores, que juntos definem o padrão a ser correspondido.

Principais elementos das Regex
  • Âncoras:
    • ^: Início da string.
    • $: Fim da string.
  • Metacaracteres:
    • .: Qualquer caractere, exceto nova linha.
    • \: Caractere de escape para caracteres especiais.
  • Quantificadores:
    • *: Zero ou mais ocorrências.
    • +: Uma ou mais ocorrências.
    • ?: Zero ou uma ocorrência.
    • {n}: Exatamente n ocorrências.
    • {n,}: n ou mais ocorrências.
    • {n,m}: Entre n e m ocorrências.
  • Grupos e Alternância:
    • () : Define um grupo.
    • | : Alternância (ou).
  • Classes de Caracteres:
    • \d: Qualquer dígito (0-9).
    • \w: Qualquer caractere de palavra (a-z, A-Z, 0-9, _).
    • \s: Qualquer espaço em branco (espaço, tab, nova linha).
    • [...]: Conjunto de caracteres. Exemplo: [abc] corresponde a 'a', 'b', ou 'c'.
    • [^...]: Conjunto negado de caracteres. Exemplo: [^abc] corresponde a qualquer caractere exceto 'a', 'b', ou 'c'.
  • Escape Sequences:
    • \\: Barra invertida literal.
    • \.: Ponto literal.
    • \D: Não dígito.
    • \W: Não caractere de palavra.
    • \S: Não espaço em branco.

Para que Servem as Expressões Regulares?

As expressões regulares são usadas para:

  • Validação: Verificar se um texto corresponde a um padrão específico, como endereços de e-mail, números de telefone, CPFs, etc.
  • Busca: Localizar ocorrências de padrões dentro de textos.
  • Substituição: Modificar texto substituindo padrões correspondidos por novos valores.
  • Extração: Extrair partes de um texto que correspondam a um padrão específico.

Quando Usar Expressões Regulares?

Utilize expressões regulares quando precisar de:

  • Verificação rápida e eficiente de formatos de entrada.
  • Manipulação complexa de strings que seria difícil de implementar com métodos tradicionais.
  • Processamento de grandes volumes de texto onde buscas e substituições precisam ser feitas rapidamente.

No entanto, evite usar regex quando:

  • Uma operação simples pode ser realizada sem regex.
  • A expressão regular se torna extremamente complexa, tornando o código difícil de ler e manter.
  • A performance é uma preocupação crítica e existem alternativas mais eficientes.

Exemplos Práticos

Vamos ver alguns exemplos práticos para reforçar a compreensão:

Validação de E-mail

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • ^[a-zA-Z0-9._%+-]+: Início da string seguido de um ou mais caracteres alfanuméricos ou ., _, %, +, -
  • @: Símbolo @.
  • [a-zA-Z0-9.-]+: Um ou mais caracteres alfanuméricos, . ou -.
  • \.: Ponto literal.
  • [a-zA-Z]{2,}$: Dois ou mais caracteres alfabéticos até o final da string.

Validação de Telefone (Formato US)

^\(\d{3}\) \d{3}-\d{4}$
  • ^\(: Início da string seguido por um parêntese esquerdo literal.
  • \d{3}: Três dígitos.
  • \) : Parêntese direito literal seguido de um espaço.
  • \d{3}-\d{4}$: Três dígitos, um hífen, e quatro dígitos até o final da string.

Validação de CPF (Brasil)

^\d{3}\.\d{3}\.\d{3}-\d{2}$
  • ^\d{3}: Três dígitos no início da string.
  • \.: Ponto literal.
  • \d{3}: Três dígitos.
  • \.: Ponto literal.
  • \d{3}: Três dígitos.
  • -: Hífen literal.
  • \d{2}$: Dois dígitos até o final da string.

Data (Formato DD/MM/YYYY)

^\d{2}/\d{2}/\d{4}$
  • ^\d{2}: Dois dígitos no início da string.
  • \.: Ponto literal.
  • \d{4}$: Quatro dígitos até o final da string.

Validação de Valor Monetário (Brasil)

^-?\d{1,3}(\.\d{3})*(,\d{2})?$|^-?\d+(,\d{2})?$
  • ^-?: Início da string seguido de um sinal negativo opcional.
  • \d{1,3}: Um a três dígitos.
  • (\.\d{3})*: Zero ou mais grupos de três dígitos precedidos por um ponto.
  • (,\d{2})?$: Uma vírgula seguida de dois dígitos (opcional) até o final da string.
  • |: Alternância (ou).
  • ^-?\d+(,\d{2})?$: Início da string seguido de um sinal negativo opcional, um ou mais dígitos, e uma vírgula seguida de dois dígitos (opcional) até o final da string.
Vamos decompor essa última expressão de forma mais detalhada:
  • ^:Âncora que indica o início da string.
  • -?: O hífen (-) seguido por um ponto de interrogação (?) indica que o sinal negativo é opcional.
  • \d{1,3}: \d corresponde a qualquer dígito (0-9). {1,3} significa que deve haver de 1 a 3 dígitos.
  • (\.\d{3})*: \. corresponde a um ponto literal. \d{3} significa três dígitos. O asterisco (*) indica que este grupo pode aparecer zero ou mais vezes.
  • (,\d{2})?: , corresponde a uma vírgula literal. \d{2} significa dois dígitos. O ponto de interrogação (?) indica que este grupo é opcional.
  • $: Âncora que indica o final da string.
  • |: Operador OR que separa duas alternativas.
  • ^-?\d+(,\d{2})?$: Segunda parte da expressão regular:
  • ^: Início da string.
  • -?: Sinal negativo opcional.
  • \d+: Um ou mais dígitos.
  • (,\d{2})?: Vírgula seguida por dois dígitos, opcional.
  • $: Final da string.

Conclusão

As expressões regulares são uma ferramenta extremamente útil para desenvolvedores e administradores de sistemas que precisam manipular texto de forma eficiente baseado em padrões. Compreender e utilizar regex pode melhorar significativamente a capacidade de validar, buscar, substituir e extrair informações de strings. A prática e o estudo contínuo são essenciais para dominar essa poderosa ferramenta.

Experimente criar suas próprias expressões regulares e veja como elas podem simplificar suas tarefas de manipulação de texto!

Dica: você pode testar as expressões regulares no site Regex101, divirtam-se! 😃

(Por ClipaTec Informática)

0 comments:

Postar um comentário

Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!