2010-12-10 80 views
1

在文本框中,我保留电子邮件地址。 例如如何从文本中拆分电子邮件地址?

Text_box.value="[email protected],[email protected],[email protected]" 

如何拆分所有电子邮件地址?我应该使用正则表达式吗?

最后,我想保持其正确的用户编码的任何电子邮件地址

+0

怎么样的正则表达式? – 2010-12-10 12:20:25

+0

拆分就足够了 – ratty 2010-12-10 12:22:20

+0

@Andrew Collins - 现在你有两个问题... – RYFN 2010-12-10 12:24:46

回答

0

这将只打印匹配的电子邮件地址,而不是与之不匹配的地址。

private void Match() 
{ 
     Regex validationExpression = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 
     string text = "[email protected];[email protected],[email protected],[email protected],[email protected],what,[email protected]"; 
     MatchCollection matchCollection = validationExpression.Matches(text); 
     foreach (var matchedEmailAddress in matchCollection) 
     { 
      Console.WriteLine(matchedEmailAddress.ToString()); 
     } 
     Console.ReadLine(); 
} 

这将打印

[email protected]
[email protected]
[email protected]

其他的事情就不会被正则表达式匹配。

3
string[] s=Text_box.Text.split(','); 
Regex R=new Regex("\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b"); 
var temp=from t in s where R.IsMatch(t) select t; 
List<string> final=new List<string>(); 
final.addrange(temp); 

使用本

1
string[] emails = list.Split(new char[]{','}); 
+0

如果您检查Split()方法,您会注意到char []参数中的“params”关键字。这可以让你走: list.Split(','); OR list.Split(',','|');等等 – 2010-12-10 12:29:50

0

有两种方式来分割的字符串。

1)每个字符串类型的对象都有一个名为的方法Split()它接受字符或字符串数​​组的数组。这个数组的元素用于分割给定的字符串。

string[] parts = Text_box.value.Split(new char[] {','}); 

2)尽管在这个例子中string.Split()就足够了,但是我们可以使用正则表达式实现相同的结果。正则表达式分割为:

string[] parts = Regex.Split(Text_box.value,@","); 
0

您必须使用正确的正则表达式来查找所有形式的电子邮件地址(带拉丁字母)。 请在维基百科(http://en.wikipedia.org/wiki/Email_address)上查找正确的电子邮件地址语法(更简单的方法)或RFC5322,5321(很难理解)。

我使用这个:

(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|""(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*"")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 
相关问题