Olá Eduardo! Tudo bem?
Isso acontece porque essa faixa não cobre todos os caracteres acentuados possíveis, especialmente quando lidamos com diferentes casos de acentuação e letras maiúsculas.
A solução que você encontrou utilizando a biblioteca unicodedata
para normalizar o texto e remover acentos é uma abordagem muito eficaz. Ao normalizar o texto, você transforma caracteres acentuados em suas formas básicas, permitindo que a busca seja feita de forma mais abrangente e sem se preocupar com acentos.
Aqui está um exemplo prático de como seu código está funcionando:
Entrada do Usuário:
- Título do livro: "Aventuras na Amazônia"
- Iniciais para pesquisa: "A"
Processo de Normalização:
- O título "Aventuras na Amazônia" é normalizado para "Aventuras na Amazonia".
- A inicial "A" permanece a mesma, pois não possui acento.
Busca:
- A regex
rf'\b{normalized_to_search}[a-z]*'
procura por palavras que começam com "A" no título normalizado.
Saída:
- O resultado será
["Aventuras", "Amazonia"]
, que são as palavras que começam com "A" no título.
Essa abordagem é muito útil para garantir que você capture todas as palavras corretamente, independentemente dos acentos.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.