为了账号安全,请及时绑定邮箱和手机立即绑定

用于将电子邮件地址与域匹配的正则表达式

用于将电子邮件地址与域匹配的正则表达式

C#
鸿蒙传说 2021-12-25 16:46:34
鉴于我有域模式domain.comsub.domain.com*.com*.domain.comsub.*.com鉴于我将有以下格式的电子邮件地址user@domain.comuser@sub.domain.com是否可以制作 1 个正则表达式模式来查找电子邮件地址是否与域模式之一匹配?
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

在这种情况下,*.com 包括所有其他模式。您可以检查电子邮件endwith .com是否足以满足您的需求


List<string> emails = new List<string>

                      {

                          "a@domain.com",

                          "a@sub.domain.com",

                          "a@asd.com",

                          "a@.sub.asdas.com",

                          "a@.sub.asdas.com",

                      };


Regex regex = new Regex(@"(domain\.com)|(sub\.*\.com)");


emails= emails.Where(e => regex.IsMatch(e)).ToList();

如果要使用正则表达式检查多个模式,可以使用 |


List<string> emails = new List<string>

                      {

                          "a@domain.com",

                          "a@sub.domain.com",

                          "a@asd.com",

                          "a@.sub.asdas.com",

                          "a@.sub.asdas.com",

                      };


Regex regex = new Regex(@"(domain.com)|(sub.*.com)");


emails= emails.Where(e => regex.IsMatch(e)).ToList();


查看完整回答
反对 回复 2021-12-25
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您不需要正则表达式。可以用 linq 完成:


            string[] domains = { "*.sub.domain.com", "*.com", "*.domain.com", "sub.*.com" };


            string email = "abc.sub.domain.com";

            string user = "abc";


            bool match = domains.Any(x => x.Replace("*", user) == email);


查看完整回答
反对 回复 2021-12-25
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

试试这个正则表达式:

^ [a-zA-Z0-9 _. + -] + @ (?: (?: [a-zA-Z0-9 -] +.)? [a-zA-Z] +.)? (provider1 | provider2 ). (domain1 | domain2) $

用这个例子尝试了这个正则表达式:abc123@provider1.domain1 - 是有效的

带有子域的电子邮件的正则表达式:

^ [a-zA-Z0-9 _. + -] + @ (?: (?: [a-zA-Z0-9 -] +.)? [a-zA-Z] +.)? (sub1 | sub2 ). (provider1 | provider2). (domain1 | domain2) $

它适用于任何域和邮件服务提供商。我试过这个,它有效


查看完整回答
反对 回复 2021-12-25
  • 3 回答
  • 0 关注
  • 228 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号