试着查看其他人正在使用的正则表达式,但出于某种原因,它不适合我。
我基本上只有一个字符串,例如" testing-user@example.com" ;,它只提取user@example.com而不是整个事物。
以下是我所拥有的:
regex = Regexp.new(/\b[a-zA-Z0-9._%+-,]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/)
email = line.scan(regex)
非常感谢任何帮助。
答案 0 :(得分:2)
连字符需要在字符类内部的位置进行转义。
[a-zA-Z0-9._%+\-,]+
^
(+-,
)目前与+
和,
之间范围中的单个字符匹配
在字符类中,连字符具有特殊含义。您可以将连字符作为类的第一个或最后一个字符。在某些正则表达式实现中,您也可以直接放在一个范围之后。如果你将连字符放在其他任何地方,你需要在它前面加一个反斜杠,以便将它添加到你的班级。