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

时间:2017-07-07 05:06:24

标签: ruby regex

我有

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

我希望在数组中获得1220。我的解决方案是:

array_line = line[/\(.*?\)/].delete('()').delete(' ').split(",")

有没有更好的方法可以使用ruby来解决它?

3 个答案:

答案 0 :(得分:5)

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

line.scan(/\d+/) #=> ["12", "20"]

或数字数组

line.scan(/\d+/).map(&:to_i) #=> [12, 20]

根据评论的另一个例子和方法:

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

这里我们使用lookahead和lookbehind来匹配括号之间的数字。

答案 1 :(得分:1)

出于好奇:

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

答案 2 :(得分:0)

这个也是一个很好的答案:

line[/\((.*?)\)/, 1].delete(' ').split(",")
相关问题