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