(^\w+[.-][\w?])@(\w+.+\w+.\w+)
(^\w+[.-][\w?])@(\w+.+\w+.\w+)
Oi, Pedro, tudo bem?
Desculpa a demora em te responder!
Obrigado por compartilhar a sua resolução,mas a parte (\w+.+\w+.\w+)
não captura corretamente os pontos que separam os componentes do nome do host (por exemplo, "example.com", que não seria uma string válida considerando a sua expressão regular). Além disso, o uso de colchetes []
em vez de parênteses ()
, o que pode levar a uma interpretação incorreta do padrão.
Uma opção para verificar um e-mail, tendo como base a expressão regular que você apresentou, seria:
^[\w.-]+@[\w.]+\.[\w.]{2,}$
Esta expressão regular usa os seguintes elementos:
^
- ncora de início de linha.[\w.-]+
- Um ou mais caracteres alfanuméricos, ponto, hífen ou sublinhado, que correspondem ao nome do usuário do endereço de e-mail.@
- O caractere "@" que separa o nome do usuário do nome do host.[\w.]+
- Um ou mais caracteres alfanuméricos, ponto ou sublinhado, que correspondem ao nome do host do endereço de e-mail.\.
- O caractere "." (ponto) precisa ser escapado para corresponder literalmente a um ponto.[\w.]{2,}
- Dois ou mais caracteres alfanuméricos, ponto ou sublinhado correspondentes ao TLD do endereço de e-mail.Contudo, o exercício pede verificações específicas onde e e-mail deve ter um @
e terminar com caelum.com.br
ou alura.com.br
. O nome do usuário (tudo antes do @
) tem apenas letras minúsculas, pode ter um número no final e tem de 5 a 15 caracteres.
Dessa forma, a expressão regular abaixo atenderia melhor aos requisitos para verificar o e-mail:
([a-z.]{4,14}[a-z\d])@(?:caelum.com.br|alura.com.br)
Na expressão acima temos:
([a-z.]{4,14}[a-z\d])
- Um grupo de captura que corresponde ao nome do usuário do endereço de e-mail. Ele começa com uma sequência de 4 a 14 caracteres alfabéticos minúsculos ou ponto, e termina com um caractere alfanumérico minúsculo. Essa sequência de caracteres pode incluir pontos, mas não pode começar ou terminar com eles.
@
- O caractere "@" que separa o nome do usuário do nome do host.
(?:
- Início de um grupo não capturador. Isso significa que a expressão dentro deste grupo não será capturada em um grupo de captura separado.
caelum.com.br|alura.com.br
- Uma alternância que corresponde a um dos dois domínios permitidos: "caelum.com.br" ou "alura.com.br".
)
- Fim do grupo não capturador.
Espero ter ajudado. Caso tenha dúvidas, estarei à disposição. Abraços e bons estudos!