我正在尝试使用ruby解析来自bpftrace文件的以下输出。我考虑在'|'
上拆分,然后需要从"[4, 8) 824"
中获取值需要将这两个值放入数组中我也在考虑使用trim方法,但肯定有更好的方法-也许使用正则表达式请给我一些如何进行的指导好吗?
输入:[4, 8) 824 |@@@@ |
first_array = []
text=File.foreach('/.../test.txt').with_index do |line|
puts "#{line}"
values=line.split("|")
first_array=values[0].split(" ")
puts first_array
最佳答案
您不需要按'|'
拆分,也不需要按框外的非数字拆分:
input = '[4, 8) 824 |@@@@ |'
input.split(/\D+/).reject(&:empty?).map(&:to_i)
#⇒ [4, 8, 824]
或者,正如卡里在评论中建议的那样:
input.scan(/\d+/).map(&:to_i)
#⇒ [4, 8, 824]