Alura > Cursos de Programação > Cursos de Computação > Conteúdos de Computação > Primeiras aulas do curso Expressões Regulares: faça buscas, validações e substituições de textos

Expressões Regulares: faça buscas, validações e substituições de textos

Entendendo expressões regulares - Apresentação

Olá! Boas-vindas ao curso de Expressões regulares, conhecidas por Regex. Meu nome é Camila Pessoa.

Audiodescrição: Camila se autodescreve como uma mulher de pele clara e traços arredondados. Seu cabelo é castanho escuro. Ela usa óculos de armação arrendodada e está vestindo uma camisa preta.

Para quem é o curso?

Este curso é dedicado a quem atua na área de desenvolvimento e procura otimizar suas buscas e operações em texto utilizando expressões regulares. Além disso, é bastante interessante para quem está começando na área e deseja explorar mais sobre este universo das Regex.

O que aprenderemos?

Durante o curso, vamos aprender a criar padrões com as expressões regulares e compreender alguns conceitos e suas aplicações dentro deste processo. Também conheceremos algumas ferramentas para manipular Regex sem atuar diretamente em nosso projeto. Além disso, vamos aplicar nossos padrões de Regex em projetos reais.

Em qual projeto trabalharemos?

Vamos trabalhar com os padrões de busca em um arquivo CSV, que são as planilhas, similares ao Excel. Também trabalharemos com outros projetos, como a extração de informações de uma página web e a criação de padrões de validação de campos de um formulário.

Pré-requisitos

Para aproveitar da melhor forma o conteúdo deste curso, não é necessário ter um conhecimento avançado em programação, mas é importante ter familiaridade com alguns conceitos iniciais. Por isso, recomendo que você faça a formação iniciante em lógica de programação para acompanhar com sucesso este curso.

Recursos da plataforma

Também sugiro que aproveite os recursos da nossa plataforma. Além das vídeo-aulas, temos várias atividades que ajudam a aprofundar o conteúdo. Temos também o Fórum, que você pode acessar quando precisar de ajuda, e uma super comunidade no Discord, que está sempre pronta para dar o suporte necessário.

Então, vamos estudar?

Entendendo expressões regulares - Fazendo buscas literais com Regex

Já temos a nossa base de dados com as informações de cadastro de usuários que foram cadastrados na nossa plataforma. Nossa tarefa agora é realizar algumas buscas nesses dados, isto é, no arquivo CSV. Antes, vamos entender a estrutura desse arquivo database.csv.

Estrutura do arquivo CSV

Em primeiro lugar, temos o nome da pessoa usuária, depois, separado por vírgula, temos o e-mail, em seguida o telefone, CPF e a data de nascimento.

Nome, E-mail, Telefone, CPF, Data de nascimento 
Rogério Águas Bezerra Filho, rogerioaguas@email.com, (49) 92361-2598, 83085126406, 22/07/1995
Cleberson Kaue Assunção Sobrinho, clebinho@email.com.br, (95) 92589-4243, 18440126387,19/03/1959
Francisco Chico de Dias, chico@email.com.br, (67) 92846-3472,80544915143,17/10/2004
Bóris Thiago Carrara Mendes, borio@email.com, (85) 92657-6956,48275258979, 17/06/1999
Benedito Nivaldo de Cruz, beneh@email.com, (44) 92891-2952,87769158168, 15/12/1997
Anna Dara Brito, aninha@email.com, (64) 92967-8938,71642300721,04/03/1994
Suzana Galindo de Quintana, suzanaquintana@email.com, (28) 93481 2521,84658458594,19/11/1964 
Jason Raul Burgos Leal de Azevedo, jason@email.com.br, (98) 93602-3624,826.580.743-01,13 05 1973
Julieta Correia Marin, julie@email.com, (13) 92977-7223,752.473.458-19,22111996
Berenice Sabrina Bezerra de Maldonado, berenice@email.com, (28) 3547-5161,764.682.144-67,28.03.1984

Todos esses valores, como já mencionamos, estão separados por vírgula, que é uma característica de arquivos CSV.

Comma-separated values (CSV)

Como realizar buscas em arquivos CSV?

Para as buscas, vamos usar as expressões regulares, Regex, para construir padrões e realizar as buscas no arquivo. Então, vamos entender como funcionam as Regex e como acontece essa busca.

Para isso, usaremos uma ferramenta online: regex 101. Nela temos todo um ambiente para construção e criação de Regex. Na lateral esquerda da tela, encontramos o campo "Flavor", com opções de várias linguagens de programação. Podemos construir nossa Regex conforme a linguagem de programação escolhida, por exemplo, o JavaScript.

No centro da tela, parte superior, encontramos um campo chamado "Regular expression" e logo abaixo o "Test string", campo onde vamos inserir o valor ou texto no qual faremos a busca.

O que precisamos fazer agora? Vamos voltar para ao nosso arquivo database.csv. Vamos copiar e colar todos esses valores no "Test string". Assim, podemos começar o teste. No campo de "Regular expression", colocaremos uma informação literal, como o nome "Rogério Águas" e conferir o que acontece.

Tivemos um match! Nossa busca funcionou: conseguimos fazer uma busca literal pelo nome Rogério. Vamos testar outro nome, "Ana". Não apareceu nenhuma informação, logo, nosso match não funcionou.

O motivo de não ter dado certo é que a Ana do nosso cadastro possui dois "n", ou seja, "Anna". Na busca literal, Ana com um "n" não funcionará, mas se colocarmos dois "n", funcionará. Portanto, em uma busca literal, os caracteres devem ser exatamente iguais.

O que são expressões regulares?

As expressões regulares, Regex ou RegExp, são uma sequência de caracteres que nos ajudam a identificar outras cadeias de caracteres. É uma forma de criarmos padrões e realizarmos buscas. Podemos comparar as expressões regulares com um quebra-cabeça, onde os caracteres são as peças do nosso quebra-cabeça (nossa Regex), e a imagem que o nosso quebra-cabeça vai formar seria o padrão para encontrar a ocorrência. Consequentemente, também conseguimos formar padrões com Regex.

Agora que entendemos que podemos criar Regex de forma literal, vale ressaltar que não queremos apenas fazer essas buscas num arquivo de testes, mas também em bases com muitos dados. Podemos também trabalhar com a Regex no nosso computador, localmente, algo que será detalhado no próximo vídeo.

Entendendo expressões regulares - Buscas com Regex no terminal

Já conhecemos a ferramenta online para testes de expressões regulares, que é a Regex 101 e também já construímos nossas primeiras expressões regulares de forma literal. No entanto, o time de testes identificou um problema em nossa plataforma.

Aparentemente, alguns cadastros de novas pessoas usuárias não foram realizados, indicando possivelmente uma falha no sistema de cadastro. Com isso em mente, o time solicitou uma busca, fornecendo dois usuários teste para verificação.

Busca por linha de comando

Para isso, existe uma ferramenta muito útil e comumente utilizada no dia a dia, que é a linha de comando via terminal do WSL ou do Linux, onde podemos utilizar expressões regulares. Portanto, vamos verificar como realizar essa busca!

Começaremos abrindo o terminal WSL. Em seguida, vamos inserir o comando grep. Logo após esse comando, adicionamos espaço e inserimos o nome do padrão que desejamos buscar. Neste caso, vamos adicionar o nome do primeiro usuário teste fornecido pelo time: "Anna".

grep Anna

Em seguida, adicionamos outro espaço e apontamos para o alvo, ou seja, especificamos o caminho do arquivo: /home/Camila/database.cvs. Ao pressionarmos "Enter", ele retorna a busca com o match(combinação) do nosso alvo e nossa expressão regular, que é exibido em vermelho.

grep Anna /home/camila/database.csv

Anna Dara Brito, @aninha@email.com, (64) 92967-8938, 71642300721, 04/03/1994

Isso significa que a busca foi bem-sucedida e que "Anna" foi cadastrada no sistema de usuário.

Agora, vamos testar com nosso próximo usuário teste: grep Beatrice. Em seguida, especificamos o caminho do arquivo: /home/Camila/database.csv.

grep Beatrice /home/camila/database.csv

Como resultado, ele não retorna nada. Significa que não encontrou o padrão dentro do database.csv.

O Linux tem muitas ferramentas úteis e uma delas permite trabalhar expressões regulares com flags, que são "bandeirinhas" (marcadores) para sinalizar algo. Vamos marcar a linha onde "Anna" aparece no nosso arquivo CSV. Para isso, inserimos grep, depois um espaço seguido de -n, e continuamos com a Regex.

grep -n Anna /home/camila/database.csv

Ao pressionarmos "Enter", ele retorna a linha onde a ocorrência apareceu.

grep -n Anna /home/camila/database.csv

7:Anna Dara Brito, @aninha@email.com, (64) 92967-8938, 71642300721, 04/03/1994

Portanto, 7 é o número da linha, e "Anna" aparece destacado em vermelho.

Por que utilizar Regex?

Agora, você pode estar se perguntando: por que não ir diretamente ao arquivo CSV e usar o atalho "Ctrl + F" para fazer uma busca? Essa é uma pergunta interessante!

Além das expressões regulares permitirem uma busca mais específica e eficiente, se tivermos um database muito grande, com milhares de dados, fazer essa busca com "Ctrl + F" poderia sobrecarregar bastante a máquina e até travar.

Além disso, este atalho fornece uma busca mais limitada. Em contraste, com as expressões regulares, podemos criar vários padrões para realizar diferentes tipos de busca.

O que é o grep?

O Grep é uma abreviação para Global Regular Expression Print (Impressão Global da Expressão Regular). Para fazer essa impressão, precisamos de alguns elementos:

Esses dois elementos serão processados pelo Regex Engine (motor da regex). Este motor está presente em várias linguagens de programação, são os flavors (sabores). Portanto, está presente no:

Podemos fazer essas buscas devido à presença dessa engine nas linguagens. Ao processar o pattern e o target, retorna o resultado, que é o nosso match, a nossa ocorrência.

Próximos passos

Agora que entendemos que podemos trabalhar com a Regex Engine em vários ambientes, podemos até pensar em desenvolver um projeto para facilitar a vida da equipe. Vamos lá?

Sobre o curso Expressões Regulares: faça buscas, validações e substituições de textos

O curso Expressões Regulares: faça buscas, validações e substituições de textos possui 99 minutos de vídeos, em um total de 54 atividades. Gostou? Conheça nossos outros cursos de Computação em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Computação acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas