RegEx删除换行符并用逗号替换

时间:2014-01-09 16:26:45

标签: ruby regex arrays

我使用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

感谢您的帮助

2 个答案:

答案 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]+/",",")