c# - 匹配包含点的电子邮件地址

标签 c# regex

我想匹配任何在 @ 符号前至少包含一个 .(点)的电子邮件地址。电子邮件已经过验证,因此正则表达式只需要搜索 ..

我试过了

Regex emailMatcher = new Regex(@"^[a-zA-Z\.']{1,}\.[a-zA-Z\.']{1,}@example\.com$");

但我知道电子邮件可以包含比 a-zA-Z\.' 更多的字符,所以这不会涵盖所有情况。

有什么想法吗?

谢谢

编辑: 我不是要验证电子邮件,我已经验证了电子邮件,我只需要选择包含 .@ 符号

之前的电子邮件

将通过的示例:

first.last@example.com
first.middle.last@example.com

应该通过但使用我当前的正则表达式不会通过的示例

first.last(comment)@example.com

最佳答案

你可以在没有正则表达式的情况下做到这一点

Func<string, bool> dotBeforeAt = delegate(string email) 
{ 
    var dotIndex = email.IndexOf(".");
    return dotIndex > -1 && (dotIndex < email.IndexOf("@"));
};
...
emails.Where(dotBeforeAt).ToList();

Try it out

关于c# - 匹配包含点的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30076468/

相关文章:

c# - OneNote VSTO 没了?

c# - 长度中的 NullReferenceException

c# - 持久化 bool 逻辑

JavaScript 正则表达式检查单个特殊字符在字符串中是否出现一次

python - 正则表达式捕获任何http地址

c# - 删除所有不匹配的内容

Javascript 正则表达式从字符串中给出 NaN

c# - 为什么 X509Certificate2 有时无法从 blob 创建?

c# - MEF ImportMany 类型参数 : elegant solution?

c# - 将 "ABC42"替换为 "Douglas"但保持 ABC421 或 ABC4244 不变的正则表达式