Csharp/C#教程:如何匹配逗号分隔的电子邮件列表与正则表达式?分享


如何匹配逗号分隔的电子邮件列表与正则表达式?

尝试使用asp:RegularExpressionValidatorvalidation文本框中以逗号分隔的电子邮件列表 ,请参阅以下内容:

  

当我在https://regexhero.net/tester/上测试时,它工作正常,但它在我的页面上不起作用。

这是我的示例输入:

 test@test.com,test1@test.com 

我在这篇文章中尝试了一个建议,但无法让它发挥作用。

ps我不想讨论正确的电子邮件validation

试试这个:

 ^([w+-.%]+@[w-.]+.[A-Za-z]{2,4},?)+$ 

在括号后添加+表示前面的组可以存在1次或更多次。

添加^$意味着字符串的开头和匹配的开始(或匹配的结束和字符串的结尾)之间的任何内容都会导致validation失败。

此正则表达式将允许逗号后面带空格的电子邮件。

 ^[W]*([w+-.%]+@[w-.]+.[A-Za-z]{2,4}[W]*,{1}[W]*)*([w+-.%]+@[w-.]+.[A-Za-z]{2,4})[W]*$ 

玩弄这个,一位同事想出了这个更准确的RegEx。 上面的答案似乎通过电子邮件地址列表,其中第一个元素不是电子邮件地址。 这是更新,它还允许逗号后面的空格。

 ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+,*[W]*)+$ 

这也有效。 这对电子邮件来说有点严格,并不是说输入的电子邮件地址不止一个或者逗号都存在。

选择最佳的第一个答案匹配abc@xyz.comxyz@abc.com这样无效的字符串。

以下正则表达式将用于逗号分隔的电子邮件ID非常棒。

 ^([w+-.%]+@[w.-]+.[A-Za-z]{2,4})(,[w+-.%]+@[w.-]+.[A-Za-z]{2,4})*$ 

它将匹配单个emailId,逗号分隔的emailId,但如果错过了逗号则不匹配。

第一组将匹配单个emailId的字符串。 第二组可选地需要’*’令牌,即0或更多这样的组但是’,’需要在这样的emailId的开头,这使得逗号分隔的emailId与上述正则表达式匹配。

下面的正则表达式限制性较小,更适合validation手动输入的逗号分隔电子邮件地址列表。 它允许相邻的逗号。

 ^([w+-.%]+@[w-.]+.[A-Za-z]{2,4},*[W]*)+$ 

使用以下正则表达式,它将解决您的问题。 以下正则表达式也将使用逗号来接收post和pre空格

 /^((([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Zs?]{2,5}){1,25})(s?,s*?))$/ 

我知道,我有点迟到了,但我想我会加上我的两分钱,因为接受的答案有一个问题,就是在没有逗号的情况下将电子邮件地址相互匹配。

我提出的正则表达式是这样的:

^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,}(,[A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,})*$

它与接受的答案类似,但解决了我所谈论的问题。 我提出的解决方案是一次或多次搜索“电子邮件地址后跟可选的逗号”,这是接受的答案所做的,此正则表达式搜索“电子邮件地址后跟可选的逗号前缀电子邮件地址任何次数“。

这通过将逗号分组后的电子邮件地址,并使整个组可选,而不仅仅是逗号来解决问题。

注意:此正则表达式用于启用不敏感标志。
您可以使用任何正则表达式匹配您喜欢的电子邮件地址,我只使用了我已经使用的那个。 你只需用你想要使用的正则表达式替换每个[A-Z0-9._%+-]+@[A-Z0-9.-]+.[AZ]{2,}

对我有用的解决方案如下

上述就是C#学习教程:如何匹配逗号分隔的电子邮件列表与正则表达式?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 ^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+)(,([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+))* 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000731.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐