我使用Nokogiri抓取了一个网站,在使用xpath之后,我留下了以下字符串(这是一些td被推入一个字符串)。
"Total First Downs\n\t\t\t\t\t\t\t\t359\n\t\t\t\t\t\t\t\t274\n\t\t\t\t\t\t\t"
我的目标是将其变成一个如下所示的数组(它将是一个嵌套数组):
["Total First Downs", "359", "274"]
问题在于创建一个正则表达式,它删除一个“,”中的转义字符,但在最后一组整数之后不在“,”中。如果最后一组整数之后的逗号是必要的,我可以使用#compact来摆脱数组中出现的nil。如果您需要关于我如何抓取网站的代码,请注意:(请注意我保存了网页以进行测试,以便我的IP地址在试用阶段不会被烧毁)
f = File.open('page')
doc = Nokogiri::HTML:(f)
f.close
number = doc.xpath('//tr[@class="tbdy1"]').count
stats = Array.new(number) {Array.new}
i = 0
doc.xpath('//tr[@class="tbdy1"]').each do |tr|
stats[i] << tr.text
i += 1
end
感谢您的帮助
答案 0 :(得分:2)
我不完全理解你的问题,但结果很容易实现:
"Total First Downs\n\t\t\t\t\t\t\t\t359\n\t\t\t\t\t\t\t\t274\n\t\t\t\t\t\t\t"
.split(/[\n\t]+/)
# => ["Total First Downs", "359", "274"]
答案 1 :(得分:0)
尝试使用gsub
"Total First Downs\n\t\t\t\t\t\t\t\t359\n\t\t\t\t\t\t\t\t274\n\t\t\t\t\t\t\t".gsub("/[\n\t]+/",",")