Ruby 有没有办法用逗号分隔数字?

Ruby 有没有办法用逗号分隔数字?,ruby,regex,Ruby,Regex,我有 我想得到一个数组中的12和20。我的解决办法是: line = "abcde:abc/abcd=(12, 20)" 有没有更好的方法用ruby来解决这个问题呢?如果你想要一个字符串数组的话 array_line = line[/\(.*?\)/].delete('()').delete(' ').split(",") 或者一组数字 line.scan(/\d+/) #=> ["12", "20"] 根据另一个示例和方法: line.scan(/\d+/).map(&:t

我有

我想得到一个数组中的
12
20
。我的解决办法是:

line = "abcde:abc/abcd=(12, 20)"

有没有更好的方法用ruby来解决这个问题呢?

如果你想要一个字符串数组的话

array_line = line[/\(.*?\)/].delete('()').delete(' ').split(",")
或者一组数字

line.scan(/\d+/) #=> ["12", "20"]
根据另一个示例和方法:

line.scan(/\d+/).map(&:to_i) #=> [12, 20]
line=“abcde:123,type/onetwother=(12,20)”
第[/(?[“12”,“20”]
在这里,我们使用前向和后向仅匹配括号之间的数字。

出于好奇:

line = "abcde:123, type/onetwothree = (12, 20)"
line[/(?<=\()[0-9,\s]+(?=\))/].split(', ') #=> ["12", "20"]
require'json'

JSON.parse“[#{'abcde:abc/abcd=(12,20)][/(?这一个可能也是一个很好的答案:

require 'json'
JSON.parse "[#{'abcde:abc/abcd=(12, 20)'[/(?<=\().*?(?=\))/]}]"
#⇒ [12, 20]

太棒了!如果括号前面有逗号和数字呢?比如line=“abcde:123,type/onetwotree=(12,20)”这确实是一个原始的解决方案。大多数人不知道
String.[]
是否支持regexp。为整数值添加
。map(&:to\u i)
line[/\((.*?)\)/, 1].delete(' ').split(",")