Olá Diógenes!
Peço desculpas pela demora em obter um retorno.
O grupo [\w-]
realmente representa apenas um caractere alfanumérico ou um traço. Quanto à sua pergunta se essa restrição do \w
estaria errada para o início, a resposta é que depende do contexto em que o regex está sendo utilizado. Se você sabe que o início do endereço de e-mail sempre será um caractere alfanumérico ou um traço, então não há problema em utilizar essa restrição. Caso contrário, é melhor remover essa restrição para garantir que o regex capture todos os endereços de e-mail válidos.
O \.?
representa um ponto opcional, ou seja, pode ter zero ou um ponto.
Já a expressão ([\w-]\.?)+
significa que o grupo [\w-]\.?
pode se repetir uma ou mais vezes. Esse grupo representa um caractere alfanumérico ou um traço seguido de um ponto opcional.
Na segunda parte do regex, depois do @
, a expressão ([\w-]+\.)+
significa que o grupo [\w-]+
deve ter um ou mais caracteres alfanuméricos ou traços, seguido de um ponto obrigatório, e esse grupo pode se repetir uma ou mais vezes.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓