用连字符替换负数的括号

时间:2015-12-28 00:04:28

标签: ruby regex

我在Ruby中处理数字列表(作为字符串):

"4.3", "2.1", "(0.1)", "(3.4)"

当我处理时,我想单独留下正数。对于负数,我想删除括号并插入连字符(将它们保持为字符串就可以了):

"4.3", "2.1", "-0.1", "-3.4"

我用gsub

剥去了括号
"(0.1)".gsub(/[()]/, "")

但添加连字符表示负面原因导致问题,如下:

"(0.1)".gsub(/[()]/, "-\1")

...据说替换了两个括号,并放置两个连字符和一个未知字符。

我没有与gsub / regex方法结合,所以任何有效的方法都可以。

1 个答案:

答案 0 :(得分:3)

["4.3", "2.1", "(0.1)", "(3.4)"]
.map{|s| s =~ /\((.+)\)/ ? "-#$1" : s}