1
resposta

.search e .match

Eu não consegui entender muito bem a diferença do .search e do .match. Porque na aula ele diz que o search serve para buscar um padrão dentro de uma string e o match para ver se a string toda é naquele padrão. Fiquei com mais dúvida porque no .compile tem menos coisas do que na string e funciona normal, então fiquei meio confuso, é na string inteira, só um pedaço, só no começo?

1 resposta

Quanto a diferença entre o .search() e o .match(), como descrito na documentação da biblioteca em questão, o primeiro verifica se há uma corresponência em qualquer lugar na string, enquanto o segundo procura uma correspondência apenas no início da string.

Por exemplo:

re.match("c", "abcdef")    # Não há correspondência (retorna None)
re.search("c", "abcdef")   # Há correspondência (retorna <re.Match object; span=(2, 3), match='c'>)

Assim, o .compile() funciona no começo se estiver utilizando o .match(), e em qualquer parte se estiver utilizando o .search().