2014-01-09 40 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]+/",",") 
相關問題