2010-07-31 161 views
0

嘿傢伙們,所以我正在製作一個腳本來捕捉這個網站上的單詞/結果(http://grecni.com/texttwist.php),所以我已經準備好了http請求,等等。幫助正則表達式/紅寶石

我唯一現在需要的是獲取出來的話,所以我用一個看起來像這樣的HTML源代碼的工作:

<html> 
<head> 
<title>Text Twist Unscrambler</title> 
<META NAME="keywords" CONTENT="Text,Twist,Text Twist,Unscramble,Free,Source,php"> 
</head> 
<body> 

<font face="arial,helvetica" size="3"> 
<p> 
<b>3 letter words</b><br>sae &nbsp; sac &nbsp; ess &nbsp; aas &nbsp; ass &nbsp; sea &nbsp; ace &nbsp; sec &nbsp; <p> 

<b>4 letter words</b><br>cess &nbsp; secs &nbsp; seas &nbsp; ceca &nbsp; sacs &nbsp; case &nbsp; asea &nbsp; casa &nbsp; aces &nbsp; caca &nbsp; <p> 

<b>5 letter words</b><br>cacas &nbsp; casas &nbsp; caeca &nbsp; cases &nbsp; <p> 
<b>6 letter words</b><br>access &nbsp; <br><br> 
Found 23 words in 0.22962 seconds 


<form action="texttwist.php" method="post"> 

enter scrambled letters and I'll return all word combinations<br> 
<input type="text" name="l" value="asceacas" size="20" maxlength="20"> 

<input type="submit" name="button" value="unscramble"> 
<input type="button" name="clear" value="clear" onClick="this.form.l.value='';"> 
</form><p> 

<a href=texttwist.phps>php source</a> 
- it's kinda ugly, but it's fast<p> 

<a href=/>back to my page</a> 

</body> 

</html> 

我試圖獲取諸如「SAE」 「sav」,「secs」,「seas」,「casas」等。

任何幫助?

這是最遠的我已經得到了,不知道是什麼,從這裏做:link text

有什麼建議?幫幫我?

+1

你需要看看這個問題:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-07-31 23:42:41

回答

0

如果你想要任何一種健壯性,你真的想要一個解析器,如Adrian所說,Nokogiri是最流行的解決方案。

如果你堅持,知道madness,你可能會在與頁面變得更加複雜,下面可以幫助:

搜索匹配

/^<b>\d+ letter words/ 

一條線,然後你可以挖出像這樣的位:

a = line.split(/<br>/)[1] # the second half 
a.gsub!('<p>', '') # take out the trailing <p> 
res = a.split(' &nbsp; ')# this is your data 

這就是說,這不是你想要的任何生產代碼。如果學習解析器會改變你看到這個問題的方式,你會感到驚訝。