6
respostas

Regex do Exercicio

1) Na resposta do exercício, consta a seguinte regex:

^([\w-]\.?)+@([\w-]+\.)+([A-Za-z]{2,4})+$

Porém, não dá matching! Nem na plataforma disponibilizada pela aula, nem no site fornecido durante as aulas: http://regexr.com/

https://imgur.com/R76Trgc

2) Minha quase solução:

(\w+([.-]?[\w\d])*)@(\.?[\w\d]+)+(\.\w{2,5})

https://imgur.com/a/HQtcH

6 respostas

Oi Bruno.

Veja se quando você copiou e colou a resposta não colocou um espaço no final dela sem querer.

Conferi aqui e não tinha espaço no final mesmo não.

Foto utilizando a ferramenta baixada para o curso e Regex em destaque pra mostrar que não tem espaço. https://imgur.com/TPUPKdX

Provavalmente deve ser algo na hora de colar os e-mails então, teste pelo site https://regex101.com/

Desculpe a demora,

https://imgur.com/a/uO22K.

A resposta permanece a mesma, nenhum match. =/

É o mesmo caso de duvida deste tópico: https://cursos.alura.com.br/forum/topico-algumas-duvidas-36290

Bruno, perceba regex possui os caracteres ^ e $ para indicar o início e fim da string.

donkey.kong@kart.com.br
bowser1@games.info
super-mario@nintendo.JP
TEAM.donkey-kong@MARIO.kart1.nintendo.com

Perceba que por início, a string acima começa com d e por fim termina com m. Todo esse texto é uma única string. Por isso sua regex não da match. É como se o texto acima fosse isso:

donkey.kong@kart.com.br\nbowser1@games.info\nsuper-mario@nintendo.JP\nTEAM.donkey-kong@MARIO.kart1.nintendo.com\n

Teste somente com um e-mail e verá que haverá um match:

donkey.kong@kart.com.br

Se você deseja que haja match no primeiro texto em todos os e-mails, você deve utilizar a flag /m (multiline).

O código abaixo funcionou para mim, mas é um e-mail por vez no testador.

^\w+(?:[.-]\w+)*@\w+(?:[.-]\w+)*.\w{2,4}$

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software