我正在尝试在字符串中搜索电子邮件地址,但当字符串包含电子邮件以外的其他字符时,我的正则表达式不起作用。意思是,如果我尝试像“me@email.com”这样的小字符串,正则表达式会找到一个匹配项。如果我在字符串中插入一个空格,例如:“me@mail.com”,则正则表达式找不到电子邮件匹配项。
这是我的代码(正则表达式模式来自网络):
string emailpattern = @"^(([^<>()[\]\\.,;:\s@\""]+"
+ @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@"
+ @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
+ @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+"
+ @"[a-zA-Z]{2,}))$";
Regex rEmail = new Regex(emailpattern);
string str = @" me@mail.com";
MatchCollection mcolResults = rEmail.Matches(str);
MessageBox.Show(mcolResults.Count.ToString());
请让我知道我做错了什么。
谢谢。
最好的问候,
最佳答案
^
和 $
表示(分别)输入文本(或多行模式中的行)的开始和结束 - 通常用于检查 整个 文本(或行)与模式匹配。因此,如果您不想要,请将它们拿走。
关于c# - 用正则表达式解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446287/