0

値に 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 を実行できません。どうすればそれができますか?.gsub().match()aNumber

4

1 に答える 1

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
于 2013-10-09T13:34:02.967 に答える