正则表达式连续两个点失败的电子邮件域

时间:2015-04-23 06:01:04

标签: regex

我正在尝试验证电子邮件的域名部分,我想检查域中是否有两个连续点,即以下内容无效

  • 乔@ ms..com
  • 乔@ ms.com..uk
  • 乔@ .. ms.com
  • joe@ms.com.au ..

我有正则表达式找到它

inFile >> arr[]

但是我在.NET中使用Regex属性并且希望构建有效的正则表达式(即一个点)而不是失败的正则表达式

我认为@+\.{2}|@.+\.{2} 字符意味着

  

所有不是表达的内容

所以我认为^会有效但.NET框架^(@+\.{2}|@.+\.{2})属性也没有 - 它会停止EmailAddress但不会停止joe@ms..com

1 个答案:

答案 0 :(得分:1)

您可以在正则表达式前使用否定前瞻

[^@]

如果域中有2个连续点,那么匹配将失败。

@将匹配一个或多个非class MyGlobalCounters { var counter = 0 var this = "Hello" var that:CGFloat = 1.23 class var sharedInstance : MyGlobalCounters { return _SingletonSharedInstance } } private let _SingletonSharedInstance = MyGlobalCounters() class A { let myGlobalCounters = MyGlobalCounters.sharedInstance func dumpAndInc() { println("ctr=\(myGlobalCounters.counter++)") } } class B { let myGlobalCounters = MyGlobalCounters.sharedInstance func dumpAndInc() { println("ctr=\(myGlobalCounters.counter++)") } } let a = A() let b = B() a.dumpAndInc() b.dumpAndInc() // in b we use the same instance for the counters a.dumpAndInc() // as in a

的字符

RegEx Demo