Ruby on rails 如何使用连接的值对字符串进行gsub?
我需要更改参数(OFFSET=)的值,将其值加20。因此,我得到的不是OFFSET=0,而是OFFSET=20。现在,我不能确定OFFSET的值是否等于0,所以我需要提取它。以下是我尝试过的:Ruby on rails 如何使用连接的值对字符串进行gsub?,ruby-on-rails,ruby,gsub,Ruby On Rails,Ruby,Gsub,我需要更改参数(OFFSET=)的值,将其值加20。因此,我得到的不是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
aNumber = "myValue=20".match(/myValue=(\d+)/)[1].to_i
bString = "OFFSET=#{aNumber}"
newValue = bString.gsub(/OFFSET=#{aNumber}/, "OFFSET=#{aNumber + 20}")
现在,要使用
{}
我显然需要一个带有“
”的字符串,它不能与.gsub()
或.match()
一起使用。现在我无法gsub,因为它无法获取aNumber
的值。如何做到这一点?您可以将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
x=“firstValue=10,myValue=20,otherValue=30”
p x.gsub(/(?firstValue=10,myValue=40,otherValue=30
如果你能举例说明你想实现什么,而不是谈论你能做什么或不能做什么,那将非常有帮助。我运行了上述命令,得到了输出OFFSET=40
。这不是你想要的吗?是的,它现在起作用了-因为一些奇怪的原因以前没有。谢谢你的检查!