拆分以负数作为分隔符

时间:2017-06-12 07:21:35

标签: ruby

如何在RUBY中使用-ve数字作为分隔符进行拆分 如果x = 989-7516-354 如果我们现在使用拆分那么它应该打印 9,8,9,5,1,6,5,4

4 个答案:

答案 0 :(得分:2)

你的问题不是很清楚。使用负数(假设:单个数字)作为分隔符进行拆分将给出

["989", "516", "54"]

要获得所需的输出,请尝试此操作。

x = "989-7516-354"
x.gsub(/-\d/, '').chars
# => ["9", "8", "9", "5", "1", "6", "5", "4"]

答案 1 :(得分:0)

x.split(/-\d/).map{|n| n.split(//)}.flatten

答案 2 :(得分:0)

x = '989-7516-354'
x.split(/(-\d)?/).map(&:to_i).reject(&:negative?)
# => [9, 8, 9, 5, 1, 6, 5, 4] 

答案 3 :(得分:0)

感谢a negative lookbehind,您只需要scan字符串中不包含-的数字:

"989-7516-354".scan(/(?<!-)\d/)
# => ["9", "8", "9", "5", "1", "6", "5", "4"]