O guia do iniciante para expressões regulares com Python

O guia do iniciante para expressões regulares com Python

Se você é um programador, é provável que já saiba o que são expressões regulares (regex). Os padrões Regex foram implementados em quase todas as linguagens de programação convencionais, mas ainda assim, o poder e a versatilidade desses padrões não são reconhecidos pela maioria dos desenvolvedores.





Este guia é sobre expressões regulares e como você pode usá-las na linguagem de programação Python.





O que são expressões regulares?

Expressões regulares são padrões que ajudam um usuário a combinar combinações de caracteres em arquivos de texto e strings. Você pode usar expressões regulares para filtrar ou encontrar um padrão específico na saída de um comando ou documento.





Existem vários casos de uso de expressões regulares, sendo o mais conhecido o comando grep no Linux . Outros aplicativos incluem a filtragem de informações, como a extração de endereços de e-mail e números de telefone de um despejo de dados.

A principal razão pela qual muitos desenvolvedores se desviam das expressões regulares é a falta de consciência sobre o poder da correspondência de padrões. Alguns até acham as expressões regulares confusas devido à grande quantidade de caracteres e sequências usadas nos padrões.



Qualquer que seja o motivo, as expressões regulares são e serão um dos aspectos mais importantes da programação que todos devem conhecer.

como compartilhar o jogo no ps5

Expressões regulares: correspondência de caracteres e sequências

Regex é uma linguagem totalmente nova em si. Um mecanismo de regex interpreta padrões compostos por vários caracteres equipados com significados específicos. Literais básicos, como caracteres alfanuméricos, correspondem a si mesmos. Mas caracteres complexos como $, *, +, {, etc. ajudam na correspondência de ordem superior.





  1. Asterisco (*): Corresponde ao caractere anterior zero ou mais vezes. O significado literal do caractere seria 'Elemento multiplicado n vezes'. Por exemplo, se a expressão regular for abc * , as strings correspondentes serão ab, abc, abcc, abccc, abcccc, etc. A expressão [bc] * corresponderá a bc, bcbc, bcbc, etc.
  2. Mais (+): Corresponde ao caractere anterior uma ou mais vezes. O trabalho do + personagem é semelhante a * , mas o + personagem omite o padrão se o personagem não ocorre. Por exemplo, abc + corresponderá a abc, abcc, abccc, etc., mas não a ab.
  3. Ponto de interrogação (?): Corresponde ao caractere anterior zero ou uma vez (es). Por exemplo, o padrão abc? corresponderá a ab e abc apenas.
  4. Tubo (|): Usado como binário OU operador. Corresponde a qualquer um dos caracteres anteriores e posteriores ao tubo. Por exemplo, a | b corresponderá a a ou b.
  5. Ponto (.): Corresponde a um personagem cuja identidade é desconhecida. Por exemplo, a.c corresponderá a aac, abc, acc, a2c e assim por diante.
  6. Cenoura (^): Corresponde ao primeiro caractere do padrão. Por exemplo, ^ Ra irá combinar palavras começando com Fora como Rabbit, Raccoon e Random.
  7. Dólar ($): Corresponde ao último caractere do padrão. Por exemplo, um $ irá combinar palavras que terminam com um como Van, Dan e Plan.
  8. Hífen (-): Usado para definir uma gama de caracteres. Por exemplo, [0-9] corresponderá a todos os caracteres numéricos de um dígito.

As sequências especiais usadas em padrões de expressão regular são:

  1. PARA: Retorna uma correspondência se os caracteres seguintes estiverem presentes no início da string. Por exemplo, Ahe irá combinar palavras começando com o o como The, Them, They, etc.
  2. b: Retorna uma correspondência se o caractere for encontrado no início ou no final de uma palavra. Por exemplo, bmad e louco b irá combinar palavras como feito e nômade respectivamente.
  3. B: Retorna uma correspondência se o caractere não for encontrado no início ou no final de uma palavra.
  4. d: Corresponde aos caracteres numéricos presentes na string. Por exemplo, / d * corresponderá a números como 1, 12, 1232, etc.
  5. D: Corresponde a caracteres não numéricos na string. / D corresponderá a a, b, c, f, etc.
  6. s: Corresponde a um caractere de espaço em branco no texto.
  7. S: Corresponde a um caractere diferente de espaço em branco no texto.
  8. o: Retorna uma correspondência se a string contiver caracteres alfanuméricos, incluindo sublinhados. Por exemplo, o corresponderá a a, b, c, d, 1, 2, 3, etc.
  9. NO: Retorna uma correspondência se a string não contiver caracteres alfanuméricos ou sublinhados.
  10. COM: Corresponde a caracteres no final de uma string. Por exemplo, fim Z irá combinar palavras que terminam com fim como dobrar, consertar, tender, etc.

Métodos Python para expressões regulares

Em Python, o biblioteca fornece todas as funções e utilitários necessários para implementar regex em seus programas. Você não precisa baixar a biblioteca usando pip, pois ela vem pré-instalada com o interpretador Python.





Para importar o biblioteca em Python, adicione o seguinte código ao seu script:

import re

Observe que, ao passar expressões regulares em Python, usamos strings brutas, pois não interpretam caracteres especiais, como n e t de forma diferente.

Corresponder()

o revanche() método em Python retorna um objeto regex se o programa encontrar uma correspondência no início da string especificada. Esta função leva dois argumentos básicos:

re.match(pattern, string)

...Onde padronizar é a expressão regular e fragmento é o texto que precisa ser pesquisado.

Dê uma olhada no trecho de código abaixo.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

o r caractere antes da string representar string bruta.

Saída:

None

O código mencionado retorna Nenhum Porque Palavra não estava presente no início da string.

Se uma correspondência for encontrada, você pode imprimi-la usando o grupo() método que pertence ao objeto regex.

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

Saída:

Word

o pesquisar () método aceita argumentos semelhantes como re.match (). Enquanto match () retorna apenas as correspondências presentes no início da string, procurar() retornará correspondências encontradas em qualquer índice na string.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

Observe que o partida() e procurar() os métodos retornarão apenas uma correspondência de padrão. No código mencionado acima, Palavra aparece duas vezes. Mas o procurar() função irá corresponder apenas à primeira ocorrência da palavra.

Word

Encontrar tudo()

Como você já pode imaginar, o encontrar tudo() método retorna todas as correspondências possíveis na string.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

Em vez de retornar um objeto regex, a função findall () retorna uma lista de todas as correspondências. Você pode iterar pela lista usando um for loop em python .

Dividir()

Se você quiser dividir uma string em sub-strings usando um padrão como delimitador, o dividir() função é a que você precisa.

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

Saída:

['This word', 'that', 'this are different.']

Sub()

o sub() método permite que um usuário substitua uma palavra específica no lugar de um padrão. Leva os seguintes argumentos.

re.sub(pattern, replacement, string)

Considere este snippet de código:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

Saída:

Dave or Harry must be punished.

Compilar()

o re.compile () método no biblioteca permite que um usuário armazene uma versão compilada do padrão de expressão regular na memória. Em seguida, usando o objeto compilado, o usuário pode filtrar rapidamente o despejo de texto especificado para padrões correspondentes.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

Essa função é usada principalmente para salvar padrões que consomem muitos recursos e precisam de muito tempo para serem executados. Compilar e salvar o padrão como um objeto de antemão resolve esse problema.

Aproveite o poder do Regex com Python

Quando você está trabalhando com arquivos de texto e saída, regex é uma ótima ferramenta à sua disposição. Você pode escrever rapidamente algum código para filtrar ou substituir padrões específicos no documento.

Memorizar todos os caracteres e sequências correspondentes pode ser difícil se você está apenas começando com regex. Para melhorar as expressões regulares, consultar uma lista de caracteres, métodos e sequências de vez em quando definitivamente o ajudará a longo prazo.

Compartilhado Compartilhado Tweet O email A folha de referências do Python RegEx para programadores iniciantes

Use esta lista de expressões regulares Python para que você possa melhorar no uso desta linguagem de programação versátil.

Leia a seguir
Tópicos relacionados
  • Programação
  • Programação
  • Pitão
Sobre o autor Deepesh Sharma(79 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve guias informativos sobre o Linux, com o objetivo de fornecer uma experiência agradável a todos os recém-chegados. Não tenho certeza sobre filmes, mas se você quiser falar sobre tecnologia, ele é o cara. Em seu tempo livre, você pode encontrá-lo lendo livros, ouvindo diferentes gêneros musicais ou tocando seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever