O que é uma expressão regular?
Antes de passarmos para exemplos práticos, precisamos saber o que realmente é uma expressão regular. Uma expressão regular é uma sequência de caracteres que define a estrutura de uma entrada ou padrão de pesquisa. Imagine colocar um e-mail ou senha em algum site aleatório como Facebook, Twitter ou Microsoft. Tente colocar de forma errada e, por errado, quero dizer, tentar ir contra a convenção deles. Ele irá apontar claramente esses erros para você. Você não terá permissão para ir para a próxima etapa até que sua entrada corresponda ao padrão definido no backend. Esse padrão específico, que o impede de colocar qualquer tipo de informação adicional ou irrelevante, é conhecido como regex ou expressão regular.
Expressões regulares em Python
Expressões regulares não desempenham um papel diferente em python como em outras linguagens de programação. Python contém o módulo ré que fornece suporte completo para o uso de expressões regulares. Sempre que uma informação inadequada ou incomparável é inserida ou ocorre qualquer tipo de erro, este ré módulo vai pegá-lo como uma exceção que, em última análise, ajudará a resolver os problemas necessários.
Padrões de expressões regulares
Existem muitos caracteres disponíveis escritos em uma sequência que faz um padrão específico de expressão regular. Exceto para personagens de controle, (+ ? . * ^ $ () [] | \), todos os personagens combinam com eles mesmos. No entanto, os caracteres de controle podem ser escapados pela pré-escrita de uma barra invertida.
A seguir está uma tabela que consiste em um padrão e uma descrição sobre seu funcionamento em python.
Padrão | Descrição | |
[Pp] ython | Corresponde a “Python” ou “python” | |
Banheira [Ee] | Combine “TubE” ou “Tube” | |
[aeiou] | Corresponde a qualquer vogal minúscula | |
[0-9] | Corresponde a qualquer dígito entre 0 e 9 | |
[a-z] | Corresponde a qualquer letra ASCII minúscula | |
[A-Z] | Corresponde a qualquer letra ASCII maiúscula | |
[a-zA-Z0-9] | Corresponde a qualquer letra ASCII minúscula e maiúscula ou um dígito entre 0 e 9 | |
[^ aeiou] | Corresponde a qualquer coisa, mas não vogais minúsculas | |
[^ 0-9] | Corresponde a qualquer coisa, mas não ao dígito | |
. | Corresponde a qualquer caractere, exceto nova linha | |
\ d | Corresponde a qualquer dígito: [0-9] | |
\ D | Corresponde a um não dígito: [^ 0-9] | |
\ s | Corresponder aos espaços em branco | |
\ S | Corresponder a espaços não brancos | |
\UMA | Combine o início da string | |
\ Z | Match final of string | |
\C | Corresponder caracteres de palavras | |
\C | Corresponder caracteres não-word | |
[…] | Corresponde a qualquer caractere único entre colchetes | |
[^…] | Corresponde a qualquer caractere único que não esteja entre colchetes | |
$ | Combine o fim da linha | |
^ | Corresponde ao início da linha |
Funções de correspondência e pesquisa em Python
Agora, aqui vamos ver dois exemplos com as duas funções integradas que existem em python. Um é a correspondência e o outro é a função de pesquisa. Ambos usam os mesmos parâmetros, que são os seguintes:
- Padrão - Uma expressão regular a ser correspondida ou pesquisada.
- Fragmento - Uma string que seria correspondida ou pesquisada em uma frase ou em uma entrada.
Antes de pularmos para a parte do exemplo, aqui está outra coisa que você precisa saber. Dois métodos podem ser usados para obter grupos correspondentes, que são os seguintes:
- grupos ()
- grupo (num = 0,1,2 ...)
O que acontece é que quando as funções de correspondência ou pesquisa são usadas, ela cria subgrupos de todos os padrões relacionados encontrados nas strings e os estrutura em posições começando em 0. Veja o exemplo abaixo para ter uma ideia melhor.
Função de correspondência (exemplo)
No exemplo a seguir, pegamos uma lista na qual usamos uma expressão regular que verifica as palavras que começam com a letra 'a' e seleciona apenas se ambas as palavras começam com a mesma letra i.e.: 'uma'.
importar rearraylist = [“afeto afetivo”, “ato afetivo”, “Programação afetiva”]
para o elemento na lista de arraylist:
k = re.correspondência (“(a \ w +) \ W (g \ w +)”, elemento)
se k:
imprimir ((z.grupos ()))
Resultado:
('afeto', 'afeto')('afeto', 'agir')
O terceiro elemento da lista não será considerado, pois não corresponde ao regex que diz que ambas as palavras devem começar com 'a'.
Função de pesquisa (exemplo)
Esta função é diferente de combinar. A pesquisa analisa toda a frase, enquanto a correspondência não. No exemplo a seguir, o método de pesquisa é bem-sucedido, mas a função de correspondência não é.
importar reInput = “DocumentationNew”
v = re.pesquisa (“(ta.*)", Entrada)
se v:
imprimir (“resultado:” v.grupo 1))
Resultado:
resultado: tationNew'ta.* 'significa qualquer coisa depois de' ta 'que nos dá nosso resultado como' tationNew 'da entrada pesquisada “DocumentationNew”.
Conclusão
Expressões regulares são cruciais para todos os desenvolvedores de software e agora você pode ver facilmente como usar expressões regulares na linguagem de programação Python.