Ruby正则表达式提取电子邮件地址没有检测到HYRING

问题描述:

尝试查看其他人正在使用的正则表达式,但由于某种原因,它不适用于我。Ruby正则表达式提取电子邮件地址没有检测到HYRING

我只是基本上有一个字符串,如“[email protected]”,它只会提取[email protected]而不是整个事情。

这是我有:

regex = Regexp.new(/\b[a-zA-Z0-9._%+-,][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/) 
email = line.scan(regex) 

任何帮助将不胜感激。

+0

'+ - ,'匹配'+'到',' – 2014-09-19 18:00:39

+0

范围内的所有字符,它们在ASCII码中相互跟随时只是'+'和','! – Vache 2014-09-19 18:00:44

连字符需要转义为位于字符类内部的位置。

[a-zA-Z0-9._%+\-,]+ 
      ^

+-,)当前在范围内的字符类的,之间+

内部连字符具有特殊含义相匹配的单个字符。您可以将连字符作为课程的第一个或最后一个字符。在一些正则表达式实现中,你也可以直接放在范围之后。如果你把连字符放在其他任何地方,你需要在它前面加一个反斜线,以便将它添加到你的类中。

+0

我试图转义它,但最终我得到另一个错误,试图解析另一个电子邮件地址。 – LewlSauce 2014-09-19 18:10:23

+0

它不会被“regex = ...”行解析。这里是错误:/root/scripts/test.rb:27:in'

'block(2 levels):char class中的空范围:/\sAnn\s(.*?)\s["another.user- [email protected]“]/m(RegexpError) – LewlSauce 2014-09-19 18:13:43

+0

你的错误是'[”[email protected]“]'。你不能在'''''' – hwnd 2014-09-19 18:15:12