RegEx serve para encontrar sequências específicas dentro de strings, como “coco” dentro de “eu bebi água de coco”, “pc” dentro de “eu uso meu pc todo dia”, “pi” dentro de “a sequência do número pi tem vários números” etc.
Muitas linguagens de programação aproveitam do que RegEx. Entretanto, há diferenças no modo de utilização em cada uma delas. Nesse texto, vamos trazer 6 exemplos práticos aplicados em diferentes linguagens de programação para você saber mais sobre esse assunto. Siga a leitura!
Um pouco mais sobre RegEx
RegEx tem uma linguagem própria e pode ser explorada em todas as linguagens de programação existentes. Ela é formada por metacaracteres, que geralmente começam com \, quantificadores, que podem ser ?, *, +, e caracteres posicionais, que podem ser ^, $, por exemplo.
Os exemplos que você vai ver nesse texto dão um gostinho do que é RegEx. Você vai perceber que isso facilita o trabalho duro que se pode ter ao trabalhar com strings, como extrair padrões, verificar a quantidade de repetições de um elemento, observar o que contém de útil em determinada string etc.
Para quem trabalha com dados, saber RegEx aliada à linguagem de programação é um grande diferencial e é muito bem visto pelo mercado. Sendo assim, veja 6 exemplos de aplicação deste conceito em diferentes linguagens de programação.
1. Retornar um valor, em Javascript
Começando a série de exemplos, temos o Javascript. Como você já sabe, muitas linguagens utilizam RegEx, mas a forma de montar o código pode ser diferente entre elas.
Assim, quando se quer puxar algum valor dentro de uma string, em JavaScript, você pode usar o método RegExp.prototype.test() e ele vai retornar verdadeiro ou falso, caso o padrão que você procura exista dentro da string. Um exemplo de código seria:
var regex = /coco/;var string = ‘eu bebi água de coco’;var result = regex.test(string);console.log = result |
Como “coco” existe dentro da string “eu bebi água de coco”, o valor retornado será verdadeiro.
2. Substituir um valor por outro, em Perl
Em Perl, é possível usar operadores para encontrar (m//), substituir (s///) ou transliterar (tr///), que ajudam a solucionar muitos casos. Aqui, vamos mostrar a você um exemplo prático de como substituir uma palavra por outra em qualquer parte do código que ela apareça.
Para trabalhar com RegEx em Perl, se utiliza o símbolo ~= após a variável e antes de uma estrutura específica de substituição. Você vai ver no código que essa estrutura começa com s, que nada mais é do que o código “dizendo” para a linguagem que uma operação de substituição vai ocorrer.
$string = “A água cai da cachoeira”;$string =~ s/cachoeira/carroça/;print “$string\n”; |
Percebeu a sintaxe do operador de substituição? O primeiro termo sempre é o que vai ser substituído seguido depois da barra pelo termo que se quer substituir.
3. Encontrar posição dentro de um conjunto específico, em Java
Java traz na própria linguagem o pacote java.util.regex que facilita o trabalho com RegEx. No exemplo que você vai ver a seguir, o código vai identificar se um valor está em determinada posição ou não dentro de uma string.
O pacote em questão traz também 3 classes, que tocam diferentes tipos de operações e que tornam ainda mais prático o trabalho com RegEx. O exemplo é o que está logo abaixo:
import java.util.regex.*; class RegexExample3{ public static void main(String args[]){ System.out.println(Pattern.matches(“..c”, “tech”)); }} |
A estrutura em questão é bem simples. O que vai determinar a posição é simplesmente a inclusão de um ponto (.) antes do valor que se quer achar. O resultado desse código é verdadeiro, já que “c” está na segunda posição da string. Perceba que há dois pontos.
4. Encontrar vários valores respeitando a mesma condição, em R
A linguagem R é famosa por permitir um trabalho com grandes quantidades de dados. Em alguns casos, é interessante rastrear informações que satisfaçam um critério e economizem o tempo de uma busca pelo documento completo manualmente.
No código abaixo, há um exemplo que mostra RegEx atuando para buscar valores, dentro de uma lista de strings. Essa busca vai trazer somente os valores que terminam com a letra “o”. Veja como fica o resultado final do código:
library(stringr) string <- “Este é um exemplo de um texto feito para o hub de tecnologia Academia Tech.” set <- str_split(string, ‘ ‘) %>%unlist() set[str_detect(set, “o$”)] |
Perceba que a linha de código que retorna só as palavras que terminam com a letra “o” é a simples inserção de um $ após a letra o. Se você quiser achar as palavras, por exemplo, que comecem com determinada letra, basta usar o símbolo ^.
5. Rastrear números entre letras, em Python
Imagine que você tem uma string bem longa, que vai ser um texto no seu blog. Por alguma razão, você precisa saber onde os números aparecem, para fazer um levantamento do que eles querem expressar.
Em Python, com RegEx é perfeitamente possível conseguir fazer isso. O código abaixo traz uma solução que mostra como extrair números em uma cadeia de string. Veja como fica:
import re string = ‘Este cupom vale 10 reais de desconto até às 22 horas do dia 26 de outubro de 2023’ regex = re.findall(‘\d+’, string) print(regex) |
O “\d”, em Python, puxa todos os números dentro de uma string, mas como unidade. O “+” ao lado dele significa que a linguagem deve puxar os números do jeito que eles estiverem na string. Detalhe que o Python já possui o módulo re, que facilita também o trabalho com RegEx.
6. Delimitar o número de ocorrências de um padrão, em PHP
O PHP tem várias funções para poder utilizar RegEx. Uma delas, preg_match_all(), vai servir de exemplo para o código abaixo. A ideia é observar padrões dentro de uma string e retornar quantas vezes este mesmo padrão aparece.
Com isso em mente, é possível depois rastrear onde esses padrões aparecem, em que contexto, qual o tamanho deles e uma série de informações que só são possíveis de serem obtidas mais facilmente graças ao RegEx. O código vem a seguir:
<?php$string = “Este texto aqui tem a função de te ajudar a ter mais conhecimento em RegEx”;$regex = “/te/”;echo preg_match_all($regex, $string);?> |
Quantas vezes o padrão “te” se repete? 5 vezes. Perceba que em apenas 1 linha pode gerar um resultado poderoso no seu código.
O próximo passo é seu!
Você viu o que é possível fazer com RegEx. Porém, isso foi só a ponta do iceberg. Felizmente, você pode aprender muito mais sobre o assunto.
Através do hub de tecnologia, Academia Tech, a Faculdade Anhanguera criou um espaço para fazer amantes da tecnologia, como você, terem a chance de desenvolver-se naquilo que tanto gostam de fazer.
Conheça os cursos de tecnologia disponíveis na Faculdade Anhanguera!
Perguntas Frequentes
No meio da década de 50, o matemático Stephen Kleene inventou as expressões regulares (ou RegEx) para trabalhar com autômatos finitos, que são máquinas desenvolvidas para, curiosamente, reconhecer padrões.
Depois disso, poucos anos se passaram até que a aplicação dos conceitos criados por Kleene pudessem ser vistos em várias aplicações computacionais, como o Unix.
Em termos simples, sim. Pesquisas mostram que participantes de experimentos e pesquisadores concordam que RegEx, apesar da sofisticação e quantidade de problemas que consegue solucionar, é complicada para entender e documentar.
Alguns motivos se relacionam à densidade de informação que carrega, dificuldade de leitura, variações entre as diferentes linguagens, alta abstração etc.
Em todas as linguagens de programação, RegEx pode ser utilizada para encontrar um padrão igual a de uma string, buscar um padrão dentro de uma string ou transformar um padrão dentro de uma string.
Se o padrão “ai” está na string “caiaque”, searching. Se quer mudar a string “caiaque” para “bote”, transforming. Se quer saber se o padrão “bote” é igual à string “bote”, matching.
Graduado em Letras – Português / Espanhol pela Universidade Federal do Ceará. Atuou por 3 anos como bolsista-pesquisador em um projeto interdisciplinar entre as áreas de Linguística e Ciências da Computação. É copywriter e redator desde 2021. Ama de paixão tudo relacionado a escrita, tecnologia, cachorros, histórias e xadrez.