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.matchverifica a correspondência apenas no início da string.re.searchescaneia 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.