Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Aula 03 "analizando regex"

para que a resposta correta:

\w{2,50}@\w{2,15}.[a-z]{2,3}.[a-z]{2,3}

Consiga reconhecer o string "rodrigo@gmail.com" seria necessario modificar o regex para:

\w{2,50}@\w{2,15}.[a-z]{2,3}(.[a-z]{2,3})?

correto?

5 respostas

Oi André, tudo tranquilo?

Através da regex dita como correta:

\w{2,50}@\w{2,15}.[a-z]{2,3}.[a-z]{2,3}

é possível identificar a string "rodrigo@gmail.com".

Da forma como você sugeriu funciona, entretanto, aceitaria emails não válidos devido ao ponto de interrogação, que permite o grupo final aparecer zero ou mais vezes. Então, sua regex aceitaria por exemplo:

rodrigo@gmail

Caso você retire o ponto de interrogação, fica correto, ela cumprirá o objetivo.

Deixo como sugestão este site, onde é possível testar as expressões regulares. Basta digitar a expressão e a string de teste.

Qualquer dúvida estou a disposição. Espero ter ajudado. Bons estudos!!!

isso tem a ver com "." ser um carater especial? talvez a resposta deveria ser

\w{2,50}@\w{2,15}\.[a-z]{2,3}(\.[a-z]{2,3})?

digo, a resposta correta aceitaria "rodrigo@gmailllll"

solução!

Falaaa André, tudo bem?

A resposta que você sugeriu da primeira vez:

\w{2,50}@\w{2,15}.[a-z]{2,3}(.[a-z]{2,3})?

é possível aceitar rodrigo@gmailllll. Isto acontece porque quando você define:

(.[a-z]{2,3})?

Você diz que este grupo de regras dentro do parênteses podem aparecer zero ou mais vezes e isto ocorre por causa do ponto de interrogação. Entendeu a ideia?

Caso você faça da forma como sugeriu da segunda vez, escapando o caractere ponto a fim de pegar o seu valor real:

\w{2,50}@\w{2,15}\.[a-z]{2,3}(\.[a-z]{2,3})?

não seria aceito a string rodrigo@gmail uma vez que agora, obrigatoriamente teremos que ter um ponto em nossa string. Então, desta segunda forma poderíamos ter como aceitas:

  • rodrigo@gmail.com.br
  • rodrigao1993@4shared.org.uk
  • rodrigo@rodrigo.br
  • rodrigo123@python.py.br

Qualquer dúvida é só falar. Espero ter ajudado. Bons estudos!!!

Muito obrigado Nadia, ajudou bastante.

André, peço pro gentileza que encerre o tópico, para fazer isto, basta marcar a resposta que te auxiliou como solução.

Bons estudos!!!