Resumo : neste tutorial, você aprenderá como usar a search()
função regex do Python para retornar a primeira correspondência de um padrão em uma string.
Introdução à função Python regex search()
A regex search()
é uma função do módulo interno re
que lida com expressões regulares . A search()
função possui a seguinte sintaxe:
re.search(pattern, string, flags=0)
Linguagem de código: Python ( python )
Nesta sintaxe:
- padrão é uma expressão regular que você deseja pesquisar na string.
- string é a string de entrada.
flags
é um ou mais sinalizadores de expressão regular que modificam o comportamento padrão do padrão.
A search()
função verifica string
da esquerda para a direita e encontra o primeiro local onde pattern
produz uma correspondência. Ele retorna um Match
objeto se a pesquisa foi bem-sucedida ou None
não.
Exemplos de funções de pesquisa regex() em Python
Vejamos alguns exemplos de uso da search()
função.
1) Usando a função Python regex search() para encontrar a primeira correspondência
O exemplo a seguir usa a search()
função para encontrar o primeiro número na string:
import re
s = 'Python 3 was released on Dec 3, 2008'
pattern = '\d+'
match = re.search(pattern, s)
if match is not None:
print(match.group())
else:
print('No match found')
Linguagem de código: Python ( python )
Saída:
<re.Match object; span=(7, 8), match='3'>
Linguagem de código: Python ( python )
Neste exemplo, o padrão \d+
corresponde a um ou mais dígitos. O search()
retorna um Match
objeto.
Para obter a correspondência, você pode chamar o group()
método do Match
objeto assim:
import re
s = 'Python 3 was released on Dec 3, 2008'
pattern = '\d+'
match = re.search(pattern, s)
if match is not None:
print(match.group())
Linguagem de código: Python ( python )
Saída:
3
Linguagem de código: Python ( python )
2) Usando a função Python regex search() para encontrar a primeira palavra que corresponde a um padrão
O exemplo a seguir usa a search()
função para pesquisar a primeira palavra que termina com a string literal thon
em uma string:
import re
s = 'CPython, IronPython, or Cython'
pattern = r'\b((\w+)thon)\b'
match = re.search(pattern, s)
if match is not None:
print(match.groups())
Linguagem de código: Python ( python )
Saída:
('CPython', 'CPy')
Linguagem de código: Python ( python )
O padrão r'\b((\w+)thon)\b'
possui dois grupos de captura:
(\w+)
– captura os caracteres no início da palavra.((\w+)thon)
– captura a palavra inteira.
A search()
função retorna o primeiro local onde encontra a correspondência. Para acessar todos os grupos em uma partida, você usa o groups()
método do objeto match.
Conforme mostrado claramente na saída, o groups()
método retorna uma tupla que contém todos os grupos.
3) Usando a função Python regex search() com um sinalizador regex
O exemplo a seguir usa a search()
função para encontrar a primeira python
palavra em uma string:
import re
s = 'Python or python'
pattern = r'\bpython\b'
match = re.search(pattern, s)
print(match)
Linguagem de código: Python ( python )
Ele retorna a palavra python
com a letra p
minúscula conforme especificado no padrão.
<re.Match object; span=(10, 16), match='python'>
Linguagem de código: Python ( python )
Para corresponder a palavra sem distinção entre maiúsculas e minúsculas, você pode passar o re.IGNORECASE
sinalizador para o terceiro argumento da search()
função. Por exemplo:
import re
s = 'Python or python'
pattern = r'\bpython\b'
match = re.search(pattern, s, re.IGNORECASE)
print(match)
Linguagem de código: Python ( python )
Neste exemplo, a search()
função retorna a palavra Python
com a letra P
maiúscula:
<re.Match object; span=(0, 6), match='Python'>
Linguagem de código: Python ( python )
Resumo
- Use a função regex
search()
para retornar a primeira correspondência de um padrão em uma string ouNone
se a pesquisa não tiver êxito.