我在使用正则表达式将外部变量插入字符串时遇到了麻烦。
我有一个看起来像的字符串:
string = "7 -"
我想在“7”和“ - ”之间的空格中插入一个整数作为字符串,我尝试使用插值,如下所示:
variable = "15"
string = string.gsub(/(\S?\d+)(\s)(\s)(\D)/, '\1\2#{variable}\3\4')
(\ S?表示附加到数字上的任何“ - ”,无论是正数还是负数)
输出是一个如下所示的字符串:
"7 \#{variable} -"
但我希望输出看起来像这样:
"7 15 -"
答案 0 :(得分:1)
这是您问题的优雅解决方案:
s = "7 -"
v = 15
string = s.gsub(/\d\s/, "#{s.delete("-").strip} #{v}")
#=> "7 15 -"
答案 1 :(得分:0)
使用双引号。单引号字符串不进行插值。
string = "7 -"
variable = "15"
string = string.gsub(/(\S?\d+)(\s)(\s)(\D)/, "\\1\\2#{variable}\\3\\4")
string # => "7 15 -"