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

RMAG news

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-Zd.-]+.[a-zA-Z]{2,6}$

^[w.-]+: Início da linha seguido por um ou mais caracteres de palavra, ponto ou hífen.

@[a-zA-Zd.-]+: 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-Zd.-]+.[a-zA-Z]{2,6}$/;
const email = exemplo@dominio.com;
console.log(emailPattern.test(email)); // true

Extração de URLs

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

https?://[^s]+

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”]

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

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.”

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.