1
resposta

Dúvida na resolução sugerida

Tenho uma dúvida. Porque na resolução do instrutor foi utilizado f string com \b ?

nova_frase = re.sub(rf'\b{palavra_antiga}\b', palavra_nova, texto)

Seria por convenção? Pois não fica mais claro assim:

nova_frase = re.sub(palavra_antiga, palavra_nova, texto)

Já que foi atribuída a palavra antiga a uma variável. E porque \b?

1 resposta

O \b no regex serve para indicar um limite de palavra.
Sem ele, a busca pode substituir a palavra mesmo se ela estiver dentro de outra. Já com o \b, a substituição acontece apenas quando a palavra está isolada.

exemplo:

texto = "O sol brilha forte. Consolação é o nome do bairro."

# Sem \b (substitui até dentro de 'Consolação')
resultado_sem_b = re.sub(r"sol", "lua", texto)
print("Sem \\b :", resultado_sem_b)

# Com \b (só a palavra 'sol')
resultado_com_b = re.sub(r"\bsol\b", "lua", texto)
print("Com \\b  :", resultado_com_b)

resultado:
Sem \b : O lua brilha forte. Conluaação é o nome do bairro.
Com \b : O lua brilha forte. Consolação é o nome do bairro.