Ruby 用连字符替换负数的括号
我正在用Ruby处理一个数字列表(作为字符串): 当我处理时,我想让正数单独处理。对于负数,我想删除括号并插入连字符(保留为字符串很好): 我已经用Ruby 用连字符替换负数的括号,ruby,regex,Ruby,Regex,我正在用Ruby处理一个数字列表(作为字符串): 当我处理时,我想让正数单独处理。对于负数,我想删除括号并插入连字符(保留为字符串很好): 我已经用gsub去掉了括号: "(0.1)".gsub(/[()]/, "") 但添加连字符表示否定会导致问题,如下所示: "(0.1)".gsub(/[()]/, "-\1") 。。。应该替换两个括号,并放置两个连字符和一个未知字符 我不支持gsub/regex方法,所以任何快速有效的方法都会奏效。你指的是括号,而不是括号。你所说的“[f]或负数”是什
gsub
去掉了括号:
"(0.1)".gsub(/[()]/, "")
但添加连字符表示否定会导致问题,如下所示:
"(0.1)".gsub(/[()]/, "-\1")
。。。应该替换两个括号,并放置两个连字符和一个未知字符
我不支持gsub/regex方法,所以任何快速有效的方法都会奏效。你指的是括号,而不是括号。你所说的“[f]或负数”是什么意思?你从所有正数开始。括号,是的。我的意思是说,输入将是一系列的数字,一些是正的,一些是负的,以及在所有这些数字上运行的任何解函数。然后,
“(0.1)”.gsub(/\((\d+\.\d+\)/,“-\$1”)
我试过了,它只留下一个连字符,之后什么都没有。回答得好<代码>+1我正要发帖。酷!是否存在一种非数组的可能性,即您只需要处理字符串(0.1)
?
["4.3", "2.1", "(0.1)", "(3.4)"]
.map{|s| s =~ /\((.+)\)/ ? "-#$1" : s}
"(0.1)".gsub(/[()]/, "-\1")
["4.3", "2.1", "(0.1)", "(3.4)"]
.map{|s| s =~ /\((.+)\)/ ? "-#$1" : s}