ruby中怎么将字符串转换为正则表达式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

我需要转换字符串,如“/[\w\s]+/“到正则表达式。

"/[\w\s]+/" => /[\w\s]+/

我试着用不同的Regexp方法如下:

Regexp.new("/[\w\s]+/") => /\/[w ]+\//,类似Regexp.compileRegexp.escape...。但他们都没有像我预期的那样回来。

此外,我还尝试删除反斜杠:

Regexp.new("[\w\s]+") => /[w ]+/但运气不好。

然后我试着做:

str = "[\w\s]+"
=> "[w ]+"

字符串如何保持原样并转换为regexp对象?

提问于
用户回答回答于

如下所示,需要在单引号中使用初始字符串

>> str = '[\w\s]+'
 => "[\\w\\s]+" 
>> Regexp.new str
 => /[\w\s]+/ 
用户回答回答于

要清楚

  /#{Regexp.quote(your_string_variable)}/

也在运行

扫码关注云+社区