2016-09-16 132 views
2

我想自己做一个简单的电子邮件验证。我需要结合两种模式:结合正则表达式c#

1)@"^[A-Za-z0-9][A-Za-z0-9._-]+[A-Za-z0-9]@[A-Za-z0-9][A-Za-z0-9.-]+\.[A-Za-z0-9.-]+[A-Za-z0-9]$" //只允许[email protected]和点不是本地和域部分的第一个或最后一个charachter

2)@"^([^\.]|([^\.])\.[^\.])*$" //必须不存在连续两个或多个点。

换句话说,我想向第一个正则表达式添加[email protected]为true的条件,但[email protected]为false。

+2

你为什么不只是执行正则表达式为他们每个人分开,而不用担心它们合并成一个 –

+0

为什么重新发明轮子? http://stackoverflow.com/questions/16167983/best-regular-expression-for-email-validation-in-c-sharp – Fabjan

+0

但是,我永远不会知道它是如何工作的;)我可以使用数千个循环,而不是一个正则表达式然后 – CepBuch

回答

1
^(?!.*[.][.])[A-Za-z0-9][A-Za-z0-9._-]+[A-Za-z0-9]@[A-Za-z0-9][A-Za-z0-9.-]+.[A-Za-z0-9.-]+[A-Za-z0-9]$ 

只需添加一个lookahead为相同。

查看演示。

https://regex101.com/r/dR4pQ2/1

+1

非常感谢!有用 – CepBuch