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.
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.
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.
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.
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.
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?
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
.
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)
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.
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.
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.
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.
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 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:
Pattern (regex), que é a nossa expressão regular propriamente dita;
Alvo (target), onde vamos encontrar a ocorrência. No nosso caso, é odatabase.csv
.
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:
Java;
C#;
JavaScript;
PHP;
C;
Python.
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.
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á?
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.