2014-01-09 39 views
2

我使用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来消除数组中出现的零。如果您需要我怎么刮的网站这里是代码:(请注意,我保存测试网页,以便我的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

我不完全理解你的问题,但结果可以用这个很容易实现:

"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"] 
+0

这很好,谢谢你的帮助。 – user2201289

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]+/",",") 
相关问题