当我使用RegEx类时,此RegEx无法正常工作

时间:2018-11-29 12:57:14

标签: ruby regex

我写了以下代码

policy="Policy: SCW000359-18\nAB & A Abcdef"
p policy[/(?<=Policy:) \w+-\w+/]

效果如此完美,它会打印以下结果

" SCW000359-18"

但是我必须将正则表达式作为字符串参数接收,因此我编写了以下代码

p policy[/#{Regexp.quote("(?<=Policy:) \w+-\w+")}/]

但是它返回nil。谁能帮我吗?

1 个答案:

答案 0 :(得分:2)

RegExp.quote将在正则表达式中引用元字符,因此它将搜索文字字符串:(?<=Policy:) \w+-\w+,显然它不在您的搜索字符串Policy: SCW000359-18\nAB & A …中。

在这种情况下,您不应引用正则表达式字符串,而应使用:

 Regexp.new('(?<=Policy:) \w+-\w+')

Docs