2009-08-18 9 views
0

J'ai un contrôle textBox qui permet à l'utilisateur d'indiquer son adresse e-mail. L'utilisation peut entrer l'email en fournissant la virgule ou dans la ligne suivante (nouvelle ligne).C# -Windows App - Aide sur les expressions régulières

La tâche est de vérifier si la zone de texte contient nouvelle ligne (\ n) caractère ou virgules puis diviser les adresses e-mail en conséquence.

I appliqué:
string [] = e-mails txtemailAddress.Text.Split ('\ n');
il divise les adresses e-mail.


je besoin d'une seule routine qui doit vérifier si la zone de texte contient », » {ou} « \ n » et diviser la chaîne en fonction de la division character.If l'adresse e-mail est invalide au format il devrait jeter exception ainsi

Merci à l'avance

Répondre

1

La méthode string.split accepte un tableau de caractères divisés sur:..

// split on newline or comma 
txtemailAddress.Text.Split(new[]{'\n', ','}); 

En ce qui concerne la validation des adresses e-mail, il s'agit d'une de ces tâches qui peuvent sembler simples à première vue, mais qui s'avèrent être plus difficiles que prévu. This has been dicussed here at SO before.

0

Il n'est pas facile d'écrire un analyseur pour vérifier si le courrier électronique est correct ou non. pour fendre vous pouvez passer le tableau de caractères à diviser en utilisant comme

char[] delimiters = new char[] { ',', '\n' }; 
string[] emails = txtemailAddress.Text.Split(delimiters); 
0

D'autres réponses sont bonnes, mais puisque vous avez parlé expression régulière: \s*,\s*|\s+ devrait fonctionner, je crois. Il se divise entre les virgules (avec n'importe quelle quantité d'espace avant ou après) et toute forme d'espace (nouvelle ligne, espace, tabulation, etc.).

var addresses = Regex.Split(text, @"\s*,\s*|\s+"); 
0

Pour Fractionner

string[] emails = txtemailAddress.Text.Split('\n', ','); 

cette méthode est plus rapide que les expressions régulières

Pour valider email voir ces questions:

https://stackoverflow.com/search?q=validate+email

c'est une tâche trop compliquée à ouvre une autre discussion ici.

Questions connexes