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:re
findall()
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 entradaflags
é um ou mais sinalizadores de expressão regular que modificam o comportamento padrão do padrão.
A findall()
função verifica da string
esquerda para a direita e encontra todas as correspondências de no pattern
arquivo string
.
O resultado da findall()
função depende do padrão:
- Se
pattern
não houver grupos de captura , afindall()
função retornará uma lista de strings que correspondem a todo o padrão. - Se
pattern
tiver um grupo de captura, afindall()
função retornará uma lista de strings que correspondem ao grupo. - Se
pattern
tiver vários grupos de captura, afindall()
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 bl
seguida por um ou mais caracteres de palavra especificados pela \w+
regra:
'bl\w+'
Linguagem de código: Python ( python )
Portanto, a
função retorna uma lista de strings que correspondem a todo o padrão.findall()
2) Usando a função findall() com um padrão que possui um único grupo
O exemplo a seguir usa a
função para obter uma lista de strings que correspondem a um grupo:findall()
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
função retorna uma lista de strings que correspondem ao grupo.findall()
3) Usando a função findall() com um padrão que possui vários grupos
O exemplo a seguir usa
funções para obter tuplas de strings que correspondem aos grupos no padrão:findall()
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.IGNORECASE
sinalizador:
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.IGNORECASE
sinalizador na findall()
função que ignora as maiúsculas e minúsculas dos caracteres das strings correspondentes. Portanto, a saída inclui Black
e blue
.
Resumo
- Use a
findall()
função regex do Python para obter uma lista de strings correspondentes.