Sobes.tech
Intern

Qual é a diferença entre rematch e research?

sobes.tech IA

Resposta da IA

re.match e re.search são funções do módulo re, usadas para procurar correspondências numa string usando expressões regulares.

A principal diferença está em onde exatamente elas começam a procurar:

  • re.match verifica a correspondência apenas no início da string.
  • re.search escaneia toda a string e devolve a primeira correspondência encontrada.

Se uma correspondência for encontrada, ambas as funções devolvem um objeto de correspondência (match object). Caso contrário, devolvem None.

Exemplo:

import re

texto = "futebol, ténis, basquetebol"

# Procurar "ténis" no início da string com match
resultado_match = re.match("ténis", texto)
print(f"Resultado match: {resultado_match}") # Vai mostrar None

# Procurar "ténis" em qualquer parte da string com search
resultado_search = re.search("ténis", texto)
print(f"Resultado search: {resultado_search}") # Vai mostrar <re.Match object; span=(9, 14), match='ténis'>

Comparação:

Característica re.match(pattern, string) re.search(pattern, string)
Área de procura Apenas no início da string Toda a string
Devolve Objeto de correspondência ou None Objeto de correspondência ou None
Aplicabilidade Verificação de prefixo da string Procura de substring por padrão

Ambas as funções suportam flags (flags) para alterar o comportamento de procura, por exemplo, re.IGNORECASE.