Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 用连字符替换负数的括号_Ruby_Regex - Fatal编程技术网

Ruby 用连字符替换负数的括号

Ruby 用连字符替换负数的括号,ruby,regex,Ruby,Regex,我正在用Ruby处理一个数字列表(作为字符串): 当我处理时,我想让正数单独处理。对于负数,我想删除括号并插入连字符(保留为字符串很好): 我已经用gsub去掉了括号: "(0.1)".gsub(/[()]/, "") 但添加连字符表示否定会导致问题,如下所示: "(0.1)".gsub(/[()]/, "-\1") 。。。应该替换两个括号,并放置两个连字符和一个未知字符 我不支持gsub/regex方法,所以任何快速有效的方法都会奏效。你指的是括号,而不是括号。你所说的“[f]或负数”是什

我正在用Ruby处理一个数字列表(作为字符串):

当我处理时,我想让正数单独处理。对于负数,我想删除括号并插入连字符(保留为字符串很好):

我已经用
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}