Java 带有连字符分隔内容的正则表达式

Java 带有连字符分隔内容的正则表达式,java,regex,Java,Regex,我如何删除此电子邮件地址 t-i-f-f-@-y-a-h-o-o--c-o-m 我基本上需要忽略每个连字符;我写的如下: (?:[\\w\\.]-?)+)@-((?:[\\w\\.]-?)+)\\.-((?:[\\w\\.]-?){3}) 但是,上面的内容并没有识别出任何东西 如果没有连字符,我知道以下代码可以工作: ([\\w\\.]+)@([\\w\\.]+).([\\w]{3}) 这正好匹配它,您可能需要单独剥离“-” # "(?:-*[\\w.])+-*@(?:-*[\\w.])

我如何删除此电子邮件地址

t-i-f-f-@-y-a-h-o-o--c-o-m

我基本上需要忽略每个连字符;我写的如下:

(?:[\\w\\.]-?)+)@-((?:[\\w\\.]-?)+)\\.-((?:[\\w\\.]-?){3})
但是,上面的内容并没有识别出任何东西

如果没有连字符,我知道以下代码可以工作:

([\\w\\.]+)@([\\w\\.]+).([\\w]{3})

这正好匹配它,您可能需要单独剥离“-”

 #  "(?:-*[\\w.])+-*@(?:-*[\\w.])+-*\\.(?:-*[\\w]){3}"

 (?: -* [\w.] )+
 -* @  
 (?: -* [\w.] )+
 -* \. 
 (?: -* [\w]  ){3}

你可以用铅笔把连字符去掉


为什么不在匹配之前删除所有
'-'
?或者匹配所有不是
-
的内容?With:
[^-]+
正则表达式不正确
(?:[\w\.]-?)+)
String strippedEmail = email.replace("-", "");