2
respostas

A solução apresentada pelo instrutor não funciona

Boa tarde Alura, eu consegui realizar este exercício com a expressão regular:

7\.[2-9]\s+-\s+[A-Z][a-zã]{3,15}

porém o instrutor sugeriu o padrão:

7\.[2-9]\s+-\s+\w+

O que exclui o João e excluirá outros acentos, então me veio duas questões:

1) Como incluir o Aluno Robson que deveria passar também ? 2) Como incluir os nomes que são acentuados ?

target

9.8 - Robson, 7.1 - Teresa, 4.5 - Armênio, 6.5 - Zulu, 7.7 - Stefania, 7.8 - J
2 respostas

Fala aí Maison, tudo bem? A expressão que você está usando não serve para o João mesmo por conta do acento, no próprio exercício é explicado:

7.[2-9]\s+-\s+\w+ Não funciona para o aluno João

Repare que na próxima linha, o instrutor dá a solução para atender nesse caso específico:

O correto para esse caso em particular seria 7.[2-9]\s+-\s+[A-Z][a-zã]+

Porém essa solução não vai pegar o Robson.

Sobre suas dúvida:

Como incluir o Aluno Robson que deveria passar também ?

Ele não deveria passar porque não está no intervalo de 7.2 a 7.9, porém, caso você queira realmente incluí-lo, modifica o começo da expressão:

[7-9].[2-9]\s+-\s+[A-Z][a-zã]+

Apenas modifiquei o 7 para receber um conjunto de possibilidades onde vai de 7 á 9.

Como incluir os nomes que são acentuados ?

Isso você vai precisar fazer na mão, adicionar todas letras e suas possibilidades de acentos, exemplo:

(áãàéêóõ)

Algo nesse sentido, lembrando que existem N maneiras para se fazer isso, geralmente eu faço assim.

Espero ter ajudado.

Fala Matheus, essa expressão que não funciona pro João é a do instrutor, a que eu usei foi essa:

7\.[2-9]\s+-\s+[A-Z][a-zã]{3,15}

Conforme escrevi anteriormente.

Posteriormente ele apresenta a solução pro João que é :

7.[2-9]\s+-\s+[A-Z][a-zã]+

Mas volta a dar como resposta definitiva na Seção Opinião do Instrutor

7\.[2-9]\s+-\s+\w+

Com a expressão:

7.[2-9]\s+-\s+[A-Z][a-zã]+

Vamos capturar o João porém o Robson que deveria passar porque a média é 8(conforme enunciado), não seria capturado pela expressão.

O que eu queria justamente era a expressão que você postou:

[7-9].[2-9]\s+-\s+[A-Z][a-zã]+

Me ajudou a vislumbrar a solução, para esse tipo de problema.

Essa sim está correta para o alvo porque seleciona o João e os aprovados conforme média.mas já não funcionaria para um 10.0, é uma pena as expressões regulares não terem algo para acentos ainda.

Obrigado pela ajuda