我在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方法结合,所以任何有效的方法都可以。
答案 0 :(得分:3)
["4.3", "2.1", "(0.1)", "(3.4)"]
.map{|s| s =~ /\((.+)\)/ ? "-#$1" : s}