DEV Community

Cover image for Introdução às Expressões Regulares (Regex)
Thiago Honorato
Thiago Honorato

Posted on

Introdução às Expressões Regulares (Regex)

Vamos falar sobre expressões regulares (Regex).

Nesse artigo, vamos abordar alguns conceitos, ver como usá-los com exemplos práticos. Este guia é adequado tanto para iniciantes quanto para aqueles que já têm alguma experiência.

O Que São Expressões Regulares?

Expressões regulares, ou Regex, são sequências de caracteres que formam um padrão de pesquisa. Elas são usadas para procurar e manipular texto baseado em padrões específicos. Regex pode ser usada em diversas linguagens de programação, como JavaScript, Java, Python entre outras.

Por Que Usar Regex?

Regex é extremamente útil para:

  • Validação de entrada de dados (como e-mails, números de telefone)
  • Busca e substituição em texto
  • Extração de informações de grandes volumes de texto

Sintaxe Básica

Caracteres Literais

O exemplo mais simples de Regex é a correspondência de caracteres literais. Por exemplo, a expressão animal corresponde exatamente à sequência "animal" no texto.

Metacaracteres

Metacaracteres têm significados especiais em Regex. Alguns dos metacaracteres mais comuns são:

  • .: Corresponde a qualquer caractere único, exceto nova linha.
  • ^: Início de uma linha.
  • $: Fim de uma linha.
  • *: Zero ou mais ocorrências do caractere anterior.
  • +: Uma ou mais ocorrências do caractere anterior.
  • ?: Zero ou uma ocorrência do caractere anterior.
  • \: Escapa um metacaractere (por exemplo, \. corresponde a um ponto literal).

Conjuntos de Caracteres

Conjuntos de caracteres permitem especificar um conjunto de caracteres que correspondem a uma posição no texto. Eles são definidos entre colchetes [].

  • [abc]: Corresponde a qualquer um dos caracteres a, b ou c.
  • [a-z]: Corresponde a qualquer caractere minúsculo de a a z.
  • [^abc]: Corresponde a qualquer caractere que não seja a, b ou c.

Âncoras e Limites

  • \b: Limite de palavra (fronteira entre caractere de palavra e não-palavra).
  • \B: Não-limite de palavra.

Exemplos Práticos

Validação de E-mail

Um exemplo comum é a validação de endereços de e-mail. Uma Regex para validar e-mails pode ser complexa, mas um exemplo simples seria:

^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6}$
Enter fullscreen mode Exit fullscreen mode
  • ^[\w.-]+: Início da linha seguido por um ou mais caracteres de palavra, ponto ou hífen.
  • @[a-zA-Z\d.-]+: Um caractere @ seguido por um ou mais caracteres alfanuméricos, ponto ou hífen.
  • \.[a-zA-Z]{2,6}$: Um ponto seguido por 2 a 6 caracteres alfabéticos até o fim da linha.

Exemplo em JavaScript:

const emailPattern = /^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6}$/;
const email = "exemplo@dominio.com";
console.log(emailPattern.test(email));  // true
Enter fullscreen mode Exit fullscreen mode

Extração de URLs

Para extrair URLs de um texto, você pode usar a seguinte Regex:

https?:\/\/[^\s]+
Enter fullscreen mode Exit fullscreen mode
  • https?: Corresponde a "http" ou "https".
  • :\/\/: Corresponde a "://".
  • [^\s]+: Corresponde a um ou mais caracteres que não sejam espaço.

Exemplo em JavaScript:

const text = "Visite nosso site em http://example.com e http://test.com";
const urlPattern = /https?:\/\/[^\s]+/g;
const urls = text.match(urlPattern);
console.log(urls);  // ["http://example.com", "http://test.com"]
Enter fullscreen mode Exit fullscreen mode

Substituição de Palavras

Para substituir todas as ocorrências da palavra "foo" por "bar" em um texto, você pode usar a Regex:

s/foo/bar/g
Enter fullscreen mode Exit fullscreen mode
  • foo: O padrão a ser correspondido.
  • bar: O texto de substituição.
  • g: Modificador que significa "global", ou seja, substituir todas as ocorrências.

Exemplo em JavaScript:

const text = "foo é uma palavra comum, foo é usada frequentemente.";
const newText = text.replace(/foo/g, 'bar');
console.log(newText);  // "bar é uma palavra comum, bar é usada frequentemente."
Enter fullscreen mode Exit fullscreen mode

Conclusão

Regex é uma ferramenta poderosa e versátil para manipulação de texto. Compreender sua sintaxe e aprender a aplicá-la em diferentes contextos pode economizar tempo e esforço em tarefas de processamento de texto. Comece com os conceitos básicos e experimente com exemplos práticos para melhorar suas habilidades em Regex.

Top comments (0)