Expressões regulares em Python: um guia para iniciantes

Conteúdo

Esta postagem foi lançada como parte do Data Science Blogathon

Expressões regulares, também reconhecido como “regex” o “regexp”, são usados ​​para combinar strings de texto, como personagens, palavras particulares ou padrões de caracteres. Isso significa que podemos combinar e extrair qualquer padrão de string do texto com a ajuda de expressões regulares. Eu usei dois termos, partida e extrair e ambos os termos têm um significado ligeiramente diferente. Pode haver casos em que queremos corresponder a um padrão específico, mas extrair um subconjunto dele. Como um exemplo, queremos extrair os nomes de bolsistas de PhD de uma lista de nomes de pessoas em uma organização.

Para este caso, o faremos partida a palavra-chave “Dr. XYZ” e extrair apenas o nome, Em outras palavras, “XYZ”, não o prefixo “Dr.” da lista. Regex é muito útil para pesquisar textos, e-mails e documentos grandes. Regex também é chamado “linguagem de programação para correspondência de string”. Antes de mergulhar no regex e sua implementação em Python, é essencial conhecer suas aplicações no mundo real.

Formulários

Validação de formulário

O uso mais comum de expressões regulares é a validação de formulário, Em outras palavras, validação de email, validação de senha, validação de número de telefone e muitos outros campos de formulário.

detalhes da conta bancária

Você deve ter notado que cada banco tem um código IFSC para suas diferentes agências que começa com o nome do banco. O número do cartão de crédito consiste em 16 dígitos e os primeiros dígitos representam se o cartão é Master, Visa o Rupay. Em todos esses casos, regex é usado.

Processamento de dados

Como podemos esquecer a relevância do regex na mineração de dados? Quando os dados estão presentes de forma não estruturada, Em outras palavras, em forma de texto, é necessário convertê-los em números para treinar o modelo. Por isso, a expressão regular desempenha um papel importante na análise de dados, encontrar padrões nos dados e, por último, realizar operações no conjunto de dados.

PNL

PNL é um procedimento através do qual um computador entende e gera a linguagem humana. e PNL, expressões regulares são usadas para deletar palavras desnecessárias, Em outras palavras, parar palavras de texto, o que ajuda a limpar os dados. Regex também é usado para analisar textos e, por isso, ajuda na previsão do algoritmo para processar os dados.

Plataformas de mídia social

Plataformas de mídia social como o Google, Facebook, O Twitter fornece várias técnicas de pesquisa, que são diferentes e eficientes de uma pesquisa normal. Créame, se você conhece essas técnicas, pode explorar muito mais. Todos esses técnicos usam expressões regulares no back-end para processar essas pesquisas.

Você pode pensar em outros aplicativos regex sempre que a correspondência de padrões for necessária.

Padrões curinga

As menores unidades individuais por meio das expressões regulares formadas são chamadas de padrões curinga.. A lista de padrões comumente usados ​​são

^

Este curinga corresponde aos caracteres no início de uma linha.

PS

Este curinga corresponde aos caracteres no final da linha.

.

Este curinga corresponde a qualquer caractere na linha.

s

Este curinga é usado para coincidir com o espaço em uma string.

S

Este curinga corresponde a caracteres que não são espaços em branco.

D

Este curinga corresponde a um dígito.

*

Este curinga repete qualquer caractere anterior zero ou mais vezes. Corresponde à string mais longa possível.

*?

Este curinga também repete qualquer caractere ou caracteres anteriores zero ou mais vezes. Apesar disto, coincidir com a string mais curta seguindo o padrão.

+

Este curinga repete qualquer caractere anterior uma ou mais vezes. Combine a string mais longa possível seguindo o padrão.

+?

Este curinga repete qualquer caractere anterior uma ou mais vezes. Apesar disto, corresponde à string mais curta possível seguindo o padrão.

[aeiou]

Corresponde a qualquer caractere em um conjunto de caracteres especificado.

[^ XYZ]

Corresponde a qualquer caractere não incluído no conjunto.

[a-z0-9]

Corresponde a qualquer caractere dado em az ou 0-9.

(

Este curinga representa o início da extração da string.

)

Este curinga representa o final da extração da string.

Exemplos de

Se você deseja extrair números de um documento, a expressão regular será: [0-9]+

Se você deseja extrair todos os caracteres, exceto números, a expressão regular será: [^ 0-9]+

Para extrair um padrão de modo que um nome comece com “UMA” e terminar com “h”, a expressão regular será: ^ A[a-zA-Z]+ h $

Uma expressão regular mais complexa se você deseja extrair o endereço de e-mail é: ^[a-zA-Z][a-zA-Z0-9 ._ + -][e-mail protegido][A-Za-z]+.[A-Za-z]

Construindo Regex!

Regex pode ser muito complexo. Compreender e construir expressões regulares complexas é uma arte que se aprende fazendo. Você pode se referir aqui para aprender como construir expressões regulares complexas.

Implementação Python

Regex é fornecido por muitas linguagens de programação, como python, Java, javascript, etc. Mesmo que o conceito seja o mesmo em todos os lugares, ainda, você pode encontrar algumas diferenças em diferentes idiomas.

Agora vamos olhar para as várias funções fornecidas por python para implementar expressões regulares, juntamente com seu código.

Python não fornece um módulo de expressão regular embutido. Você deve instalá-lo usando o comando pip e, em seguida, importá-lo em seu IDE Python. Em seguida, armazenamos algum texto em uma variável chamada string.

pip install re
import re
string = "Virat Kohli é um dos maiores jogadores do time indiano de críquete. N Ele nasceu em novembro 5, 1988, em Delhi.nEle completou sua educação na Vishal Bharti School.nIn 2008, ele ganhou a Copa do Mundo para a Índia com os filhos de Omar sob 19 anos. A partir de 2011, ele começou jogos de críquete de teste. nEle é atualmente o capitão de todos os três formatos da Índia.n Em 2017, Virat Kohli se casou com a atriz de cinema hindi Anushka Sharma.nVirat ganhou o prêmio de Homem do Tour duas vezes, no 2014 e 2016. nSince 2008, ele representou times caseiros de Delhi. Ele recebeu o Prêmio Arjuna em reconhecimento às conquistas do críquete internacional."

método de correspondência

Esta função procura o padrão RE no início da string e retorna o objeto de correspondência da string. Você pode inserir o valor no objeto através da função de grupo (). A sintaxe da função de correspondência é

revanche (Padrão, corrente, banderas)

a Padrão representa a expressão regular, a corda representa o texto a ser encontrado para corresponder ao padrão, e as bandeiras representam os modificadores. Se quisermos aplicar quaisquer condições no emparelhamento usamos bandeiras. Este é um parâmetro opcional.

código python

padrão=r'(^[V].+?)s'
print(revanche(padronizar,fragmento))      # Returns the match object
print(revanche(padronizar,fragmento).grupo()) #Extraindo valor do objeto

PRODUÇÃO

Virat

esta função corresponde se a primeira sequência começa com v.

método de pesquisa

esta função procura a primeira aparição do padrão re na sequência dada. esta função também retorna o objeto correspondente se o padrão for encontrado; caso contrário, não retorna qualquer. A sintaxe é

pesquisa (Padrão, corrente)

tenha em conta que partida encontra um jogo apenas no início da sequência, enquanto que procurar encontra um primeiro jogo em qualquer lugar da cadeia.

código python

padrão=r'[0-9]+'
re.search(padronizar,fragmento)      # Returns the match object
print(pesquisa(padronizar,fragmento).grupo())

PRODUÇÃO

esta função retorna o primeiro número presente no texto.

encontrar todo método

esta função retornará todas as ocorrências do padrão re na cadeia. A sintaxe findall é

re.findall (Padrão, corda)

código python

padrão=r'[0-9]+'
print(re.findall(padronizar,fragmento))

PRODUÇÃO

['5', '1988', '2008', '19', '2011', '2017', '2014', '2016', '2008']

esta função extrai todos os números do texto.

sub método

esta função é usada para substituir todas as ocorrências do padrão re com a nova sequência / Padrão. A sintaxe é:

re.sub (Padrão, responder, corrente)

código python

repl = r’Chiku ‘

imprimir (re.sub (Padrão, responder, corrente))


PRODUÇÃO

"Chiku Kohli é um dos maiores jogadores do time indiano de críquete. N Ele nasceu em novembro 5, 1988, em Delhi.nEle completou sua educação na Vishal Bharti School.nIn 2008, ele ganhou a Copa do Mundo para a Índia com os filhos de Omar sob 19 anos. A partir de 2011, ele começou jogos de críquete de teste. nEle é atualmente o capitão de todos os três formatos da Índia.n Em 2017, Virat Kohli se casou com a atriz de cinema hindi Anushka Sharma.nChiku ganhou o prêmio de Homem do Tour duas vezes, no 2014 e 2016. nSince 2008, ele representou times caseiros de Delhi. Ele recebeu o Prêmio Arjuna em reconhecimento às conquistas do críquete internacional."

Esta função substitui Virat por Chiku, Em outras palavras, Apelido de Kohli.

Estas são as funções mais utilizadas do módulo “ré”. Você pode se referir re documentação para mais detalhes.

Resumo

Começamos com uma definição básica de expressões regulares e, em seguida, discutimos suas várias aplicações. Mais tarde, aprendemos a formar expressões regulares usando curingas. Por último, implementamos várias ferramentas regex em Python.

Referências

foto principal – https://www.codingforentrepreneurs.com/blog/python-regular-expressions/

Sobre mim

Olá! Soy Ashish Choudhary. Estou estudando B.Tech da Universidade de Ciência e Tecnologia JC Bose. Ciência de dados é minha paixão e tenho orgulho de escrever blogs interessantes relacionados a ela. Sinta-se à vontade para entrar em contato comigo em LinkedIn.

A mídia mostrada nesta postagem não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.