Vamos falar sobre expressões regulares agora, expressões regulares não são exclusivas do Python, na verdade, você as vê em
todas as nossas linguagens de programação.
Mas vou te ensinar a expressão regular rapidamente, porque elas são muito
úteis, especialmente quando você está fazendo, digamos, validação, como verificar se alguém digitou o e-mail correto
ou se você tem requisitos de senha ou deseja verificar se um pedaço de barbante existe em um pedaço de texto.
Então, isso é algo que vamos explorar neste vídeo.
Expressões regulares.
O que eles são?
Bem, felizmente para nós, Python vem com um módulo de expressão regular.
Lembre-se de que as expressões regulares não são específicas do Python.
Você pode usá-los em qualquer idioma, mas eles são muito úteis para localizar coisas em um trecho de
texto.
Digamos que temos uma string aqui e podemos dizer string search dentro dela.
Próximo por favor.
Aqui vamos nós.
Agora, digamos que eu queira pesquisar algo aqui, antes de mais nada, posso fazer algo assim?
Eu poderia dizer pesquisa?
E corda.
Vamos imprimir aqui.
E se eu clicar em executar.
Eu entendi bem, e essa é uma maneira simples de pesquisarmos algo dentro de uma string.
Então, por que precisamos de expressões regulares?
Bem, as expressões regulares são um pouco mais poderosas do que apenas isso, porque
talvez queiramos pesquisar quantas vezes a pesquisa ocorre na string, ou talvez tenhamos uma string complicada.
Deixe-me mostrar o que quero dizer, a maneira como usamos algo como expressões regulares é usando este formato
para que eu possa dizer cada ponto e aqui usar a pesquisa.
E como você pode ver aqui, damos a ele um padrão, uma string e algumas bandeiras.
Falaremos sobre isso um pouco mais tarde.
Portanto, tudo o que precisamos dizer é que padrão você deseja fazer?
Bem, eu quero pesquisar se isso existe na força para que eu possa dizer isso.
E então dê a ele a força real.
No nosso caso, bem, esta é a nossa força.
Então, se eu executar isso.
Bem, vamos imprimir o que acontece aqui, então vamos imprimir.
Se eu clicar, corra.
Certo, recebo o que chamo de objeto de correspondência, uma expressão regular nos dá uma saída, não apenas verdadeira ou falsa, mas um
objeto real que nos diz um pouco mais de informação sobre isso.
E você pode ver aqui que uma das informações é o intervalo, portanto, onde ocorre na string,
ocorre no índice de 17 e termina no índice de 21.
Então isso é muito útil.
Vamos armazenar essas informações e apenas dizer aqui.
Então, o que podemos fazer com este objeto de correspondência?
Bem, a primeira coisa que podemos fazer é verificar o que temos.
Portanto, temos, em primeiro lugar, o spane, que vimos, e se eu executar isso.
Ele me diz onde a string ocorre como uma tupla, portanto, índice de 17 a índice de vinte e um,
também posso iniciar e iniciar.
Bem, me diz quando o texto começa e eu também posso fazer grupo ou na verdade também posso fazer fim para me mostrar onde
termina.
E então eu também posso fazer grupo.
E o grupo retorna a parte da string onde havia a correspondência e digamos que houvesse outro this aqui, se
eu clicar em executar, está vendo?
Bem, isso só me dá aquele pedaço ou parte da força de que havia a correspondência.
Nenhum grupo é realmente útil quando estamos tentando fazer pesquisas múltiplas.
Portanto, em nosso caso, estamos apenas fazendo uma pesquisa.
Portanto, temos um padrão que estamos tentando corresponder, mas há uma maneira de fazer várias pesquisas em
uma linha.
Mas antes de te mostrar isso, o que acontece se fizermos algo que não existe, como
isso com maiúscula, como correr?
Recebo um erro porque agora A não será nenhum, porque se a expressão regular não encontrar nada,
ela não retornará, portanto, retornará uma correspondência, objeto ou não.
Agora, como podemos tornar isso mais avançado?
Bem, uma coisa que podemos fazer é criar um padrão que queremos verificar.
Então, digamos padrão aqui.
E este padrão, vamos usar expressão regular, ponto com pop.
E o campell vai nos permitir dar, assim como fizemos aqui, um padrão.
Então, digamos que eu queira apenas verificar isso agora, esse padrão que posso usar em vez de apenas fazer todas
as pesquisas, posso apenas usar o padrão agora.
Para fazer a busca por mim.
Então, novamente, se eu executar isso.
Bom, agora não preciso passar isso, preciso apenas passar, essa bebida que queremos pesquisar.
Veja que isso está sendo capturado e posso usar o padrão agora em todos os lugares várias vezes, então vamos dizer
que posso fazer o ponto padrão em todos os métodos que temos.
Temos bastante, na verdade.
Deixe-me mostrar alguns dos mais úteis.
Nós encontramos tudo o que encontra todos os.
Instâncias da partida, então digamos que aqui esteja.
E clique em correr.
Olha só, eu tenho isso.
E isto.
Então, recebo ambas as instâncias dentro de uma lista.
Também posso fazer algo como partida completa e partida completa, bem, certificando-me de que tudo coincide totalmente.
Então, se eu clicar em executar aqui, vamos primeiramente clicar em executar.
Não recebo nenhum porque não recebo uma correspondência completa para que uma correspondência completa retorne a correspondência.
Tem que ser a string exata que estamos procurando.
Então, se eu clicar, corra.
Lá vai você, eu pego um objeto de fósforo agora.
Agora, digamos que eu tenha um ponto de interrogação aqui em vez de um ponto de exclamação, se eu clicar em executar.
Não é nenhum se eu tiver um ponto de exclamação e talvez algo mais depois, ainda não recebo nenhum.
Também temos outra opção, que é combinar.
E match, como você pode ver, corresponde a zero ou mais caracteres no início da string.
Então, se eu faço string aqui e imprimo D bem, na verdade, deixe-me mudar isso, vamos fazer aqui Andre e a string que estamos realmente
comparando e se eu clicar em executar.
Eu ainda recebo um objeto de correspondência versus se eu ver qual usa uma correspondência completa.
O que me dá Ainun, porque, bem, só queremos uma correspondência exata aqui contra uma correspondência que corresponda à string e então
não importa o que venha depois.
Portanto, isso é extremamente útil.
Mas, até agora, quero dizer, temos alguns métodos que podemos usar, que são bastante
úteis, mas não parecem tão poderosos.
Por que todas as linguagens têm expressões regulares?
Por que realmente nos importamos?
Bem, no próximo vídeo, vamos explorar essa ideia de padrão e como podemos fazer alguns
padrões realmente avançados.
Vou ver no próximo vídeo de.