可以在ruby中创建/使用基于变量名的值的正则表达式模式吗?
例如,我们都知道可以使用Ruby字符串执行以下操作:
str = "my string"
str2 = "This is #{str}" # => "This is my string"
我想对正则表达式做同样的事情:
var = "Value"
str = "a test Value"
str.gsub( /#{var}/, 'foo' ) # => "a test foo"
显然,这并不像列表中所列出的那样工作,我把它放在那里只是为了展示我想要做的事情。我需要根据变量内容的值进行regexp匹配。
发布于 2010-02-16 03:38:26
它可以工作,但您需要使用gsub!
或将返回值赋给另一个变量
var = "Value"
str = "a test Value"
str.gsub!( /#{var}/, 'foo' ) # Or this: new_str = str.gsub( /#{var}/, 'foo' )
puts str
发布于 2010-02-16 03:39:48
您可以通过ruby中的变量使用正则表达式:
var = /Value/
str = "a test Value"
str.gsub( /#{var}/, 'foo' )
发布于 2010-02-16 03:39:26
str.gsub( Regexp.new("#{var}"), 'foo' )
https://stackoverflow.com/questions/2268421
复制相似问题