我需要通过在其值中加20来更改参数的值(OFFSET =)。所以不是OFFSET = 0而是OFFSET = 20。现在,我不能确定OFFSET的值等于0,所以我需要提取它。这是我尝试过的:
aNumber = "myValue=20".match(/myValue=(\d+)/)[1].to_i
bString = "OFFSET=#{aNumber}"
newValue = bString.gsub(/OFFSET=#{aNumber}/, "OFFSET=#{aNumber + 20}")
现在,要使用#{}
我显然需要一个""
字符串,我不能与.gsub()
或.match()
一起使用。现在我无法gsub,因为它无法获得aNumber
的值。怎么办?
答案 0 :(得分:0)
您可以将gsub与块一起使用:
x = "myValue=20"
p x.gsub(/\d+/){|x| x.to_i + 20} # => myValue=20
或者如果您有一个更长的字符串并且只想更改myValue:
x = "firstValue=10, myValue=20, otherValue=30"
p x.gsub(/(?<=myValue=)(\d+)/){|x| x.to_i + 20} # => firstValue=10, myValue=40, otherValue=30