Oii, Joanevan! Tudo bem?
A sua solução para o desafio de extração de números com Regex ficou excelente e demonstra uma preocupação muito importante com a confiabilidade do código. Ao utilizar o re.search em vez do findall, você seguiu um caminho muito seguro para este cenário.
Pontos fortes do que você elaborou:
- Tratamento de erros: O uso da estrutura
if/else é o grande diferencial do seu código. Diferente da solução que acessa o índice [0] diretamente (o que causaria um erro caso nenhum número fosse encontrado), o seu programa verifica a existência do padrão antes de tentar exibi-lo. - Uso do
.group(): Você utilizou corretamente o método para extrair apenas a parte do texto que casou com a expressão regular, o que é a forma ideal de trabalhar com objetos do tipo Match em Python. - Lógica enxuta: A expressão
r'\d+' foi aplicada com precisão para capturar sequências de um ou mais dígitos, atendendo perfeitamente ao que o João precisa na farmácia.
Um ponto interessante de notar é que o re.search para na primeira ocorrência encontrada, o que casa exatamente com a descrição do problema, onde o número da receita é o único presente no texto.
Parabéns pela solução cuidadosa e por garantir que o programa não "quebre" caso o cliente esqueça de digitar o número.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!