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.-]+: 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 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?: Corresponde a “http” ou “https”.
://: Corresponde a “://”.
[^s]+: Corresponde a um ou mais caracteres que não sejam espaço.
Exemplo em JavaScript:
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:
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 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.