Python Regex findall()

Resumo : neste tutorial, você aprenderá como usar a findall()função regex do Python para encontrar todas as correspondências de um padrão em uma string.

Introdução à função findall() da regex Python

A é uma funçãofindall() integrada no módulo que lida com expressões regulares . A função possui a seguinte sintaxe:refindall()

re.findall(pattern, string, flags=0)Linguagem de código:  Python  ( python )

Nesta sintaxe:

  • patterné uma expressão regular que você deseja corresponder.
  • stringé a string de entrada
  • flagsé um ou mais sinalizadores de expressão regular que modificam o comportamento padrão do padrão.

A findall()função verifica da stringesquerda para a direita e encontra todas as correspondências de no patternarquivo string.

O resultado da findall()função depende do padrão:

  • Se patternnão houver grupos de captura , a findall()função retornará uma lista de strings que correspondem a todo o padrão.
  • Se patterntiver um grupo de captura, a findall()função retornará uma lista de strings que correspondem ao grupo.
  • Se patterntiver vários grupos de captura, a findall()função retornará as tuplas de strings que correspondem aos grupos.

É importante observar que os grupos que não capturam não afetam a forma do resultado retornado.

Exemplos de funções findall() de regex Python

Vejamos alguns exemplos de uso da findall()função.

1) Usando o regex findall() do Python para obter uma lista de strings correspondentes

O exemplo a seguir usa a findall()função para obter uma lista de nomes de cores que começam com a string literal bl:

import re

s = "black, blue and brown"
pattern = r'bl\w+'
matches = re.findall(pattern,s)

print(matches)Linguagem de código:  Python  ( python )

Saída:

['black', 'blue']Linguagem de código:  Python  ( python )

O padrão a seguir corresponde a uma sequência literal blseguida por um ou mais caracteres de palavra especificados pela \w+regra:

'bl\w+'Linguagem de código:  Python  ( python )

Portanto, a findall()função retorna uma lista de strings que correspondem a todo o padrão.

2) Usando a função findall() com um padrão que possui um único grupo

O exemplo a seguir usa a findall()função para obter uma lista de strings que correspondem a um grupo:

import re

s = "black, blue and brown"
pattern = r'bl(\w+)'
matches = re.findall(pattern,s)

print(matches)Linguagem de código:  Python  ( python )

Saída:

['ack', 'ue']Linguagem de código:  Python  ( python )

Este exemplo usa a expressão regular r'bl(\w+)'que possui um grupo de captura (\w+). Portanto, a findall()função retorna uma lista de strings que correspondem ao grupo.

3) Usando a função findall() com um padrão que possui vários grupos

O exemplo a seguir usa findall()funções para obter tuplas de strings que correspondem aos grupos no padrão:

import re

s = "black, blue and brown"
pattern = r'(bl(\w+))'
matches = re.findall(pattern,s)

print(matches)Linguagem de código:  Python  ( python )

Saída:

[('black', 'ack'), ('blue', 'ue')]Linguagem de código:  Python  ( python )

Neste exemplo, o padrão r'(bl(\w+))'possui dois grupos de captura:

  • (\w+)captura um ou mais caracteres de palavra.
  • (bl(\w+))captura toda a partida.

4) Usando a função findall() com um sinalizador de expressão regular

O exemplo a seguir usa a findall()função com o re.IGNORECASEsinalizador:

import re

s = "Black, blue and brown"
pattern = r'(bl(\w+))'
matches = re.findall(pattern, s, re.IGNORECASE)

print(matches)Linguagem de código:  Python  ( python )

Saída:

[('Black', 'ack'), ('blue', 'ue')]Linguagem de código:  Python  ( python )

Neste exemplo, usamos o re.IGNORECASEsinalizador na findall()função que ignora as maiúsculas e minúsculas dos caracteres das strings correspondentes. Portanto, a saída inclui Blacke blue.

Resumo

  • Use a findall()função regex do Python para obter uma lista de strings correspondentes.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *