C# - 电子邮件的正则表达式,但不包括"hotmail,gmail,yahoo"



我如何重写这个正则表达式以匹配所有的电子邮件地址,而不是那些
其中包含"hotmail,gmail和yahoo"。到目前为止,我写的是:

^([a-zA-Z0-9_-.]+)@(?<!hotmail|gmail|yahoo)(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$

通过删除<将负向后看更改为负向前看,并按如下方式重新定位

^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(?!hotmail|gmail|yahoo)(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$

以上假设"hotmail,gmail and yahoo"将直接跟随@

短相当于:

@"^([w.-]+)@([(d{1,3}.){3}|(?!hotmail|gmail|yahoo)(([a-zA-Zd-]+.)+))([a-zA-Z]{2,4}|d{1,3})(]?)$"

相关内容

最新更新