如何将字符串转换"/russia/i"
为正则表达式/russia/i
。
我知道Regexp.new str
and /#{str}/
,但这在修饰符的情况下不起作用。
如果您可以信任您的输入:
str = "/russia/i"
re = eval(str) # => /russia/i
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
我喜欢这个解决方案
str = "/russia/i"
re = Regexp.new *str.split('/').slice(1,2)
# => /russia/i