2013-10-23 39 views
-1

我正在研究一個簡單的Ruby腳本來解析網頁中賽馬的名稱。這個正則表達式適用於http://rubular.com/,但是當我運行它時,我的腳本不會打印任何東西。Ruby正則表達式Web解析

require 'open-uri'; 

url = "http://www.bloodhorse.com/horse-racing/race/race-results"; 
connection = open(url); 
content = connection.read; 

if(content =~ /(<span class="horseName">)(\n)(.*?)(\>)(.*?)(<\/a>)/) 
    print $5,"\n"; 
end 

的一些頁面的源代碼的一個例子是:

<li value="2"> 
<span class="horseName"> 
<a href="/horse-racing/thoroughbred/felonious-fred/2010">Felonious Fred</a> 

所以,我覺得,我的腳本應該返回匹配的正則表達式,在這種情況下應該是「重罪弗雷德第五屆捕獲」。我究竟做錯了什麼?

+2

如果我是你,我會使用像Nokogiri。 –

+2

我覺得有必要從SO的Java部分鏈接這個不朽的答案:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – mcfinnigan

回答

0

如果你正在拆卸一個網頁,我建議你使用Nokogiri寶石。將爲您節省正則表達式的麻煩。