将带有修饰符的字符串转换为Ruby正则表达式

时间:2013-07-07 20:46:55

标签: ruby regex

如何将字符串"/russia/i"转换为正则表达式/russia/i

我知道Regexp.new str/#{str}/,但是在修饰符的情况下这不起作用。

3 个答案:

答案 0 :(得分:4)

如果您可以信任您的意见:

str = "/russia/i"
re = eval(str) # => /russia/i

答案 1 :(得分:2)

s = "/russia/i"
Regexp.new(s[1..s.rindex('/') - 1],s[-1]) # => /russia/i

s = "/russia/i"
s.split("/") # => ["", "russia", "i"]
Regexp.new(s.split("/")[1],1) # => /russia/i

s = "/russia/i"
s.split("/") # => ["", "russia", "i"]
Regexp.new(*s.split("/")[1..-1]) # => /russia/i

答案 2 :(得分:2)

我喜欢这个解决方案

str = "/russia/i"
re = Regexp.new *str.split('/').slice(1,2)
# => /russia/i