Expression régulière pour valider séparées par des virgules, adresses e-mail?
J'ai besoin de valider des adresses de messagerie qui peut être à simple ou à plusieurs, séparés par des virgules.
Avant j'ai été en utilisant une expression régulière du programme de validation d'une expression comme:
string exp = @"((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*";
et il a été la validation de plusieurs ou une seule adresse e-mail.
Mais même l'expression n'est pas valdiating en C#? Il est dit valide à des adresses non valides.
Veuillez me corriger ou me suggérer une expression pour valider l'adresse e-mail(s).
OriginalL'auteur user576510 | 2011-07-29
Vous devez vous connecter pour publier un commentaire.
Veuillez donner plus de détails. Dont les adresses sont appariés comme valables, mais devrait être invalide? Comment appelez-vous les regex (votre code c#)?
Un point que je vois est que vous êtes absent ancres.
^
correspond au début de la chaîne$
correspond à la fin de la chaîneSi vous ne les utilisez pas votre modèle match dès qu'il a trouvé un valide sous-chaîne.
OriginalL'auteur stema
je ne sais pas C# je peut donner une idée
répartition par
','
et valider chaque élément de séparation..... sa simpleOriginalL'auteur K6t
Sans savoir comment vous faites de la validation, il est difficile de dire pourquoi C# est la validation de certaines chaînes qui le validateur avait rejeté. Plus probablement, c'est parce que le validateur est à la recherche à l'ensemble de la chaîne, et que vous utilisez
Regex.IsMatch()
en C#, ce qui serait également accepter le match si unsubstring
matchs. Pour contourner ce problème, ajoutez\A
au début et à la\Z
à la fin de votre regex. Dans votre cas, l'ensemble de la regex est facultatif (encadrée par(...)*
) si elle correspond à la chaîne vide - voulez-vous permettre que?Puis de nouveau, vous pourriez vouloir reconsidérer la regex approche tout à fait, pas sain d'esprit regex peut valider l'adresse e-mail correctement (et vous aurez toujours de transmettre les adresses que juste look valide, mais n'ont pas de compte associé avec eux).
OriginalL'auteur Tim Pietzcker
essayer ce~
OriginalL'auteur Monday
Essayer cela,
OriginalL'auteur Ankush Madankar
Utiliser la regex suivante, il permettra de résoudre votre problème. La suite de regex sera divertir post et pré espaces avec virgule trop
/^((([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z\s?]{2,5}){1,25})(\s?,\s*?))$/
OriginalL'auteur Hisham Javed