Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用连接的值对字符串进行gsub?_Ruby On Rails_Ruby_Gsub - Fatal编程技术网

Ruby on rails 如何使用连接的值对字符串进行gsub?

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

我需要更改参数(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}")

现在,要使用
{}
我显然需要一个带有
”的字符串,它不能与
.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
。这不是你想要的吗?是的,它现在起作用了-因为一些奇怪的原因以前没有。谢谢你的检查!