2013-05-14 80 views
-4

我想抓住td之間的數字並將其存儲在數據中。我用*來表示我想要得到的信息。Ruby正則表達式提取號碼

data = data.match(<td class="yfnc_tabledata1">*</td>) 
+0

你是否試圖在HTML中使用正則表達式?如果是的話,你應該使用合適的解析器。 – squiguy 2013-05-14 04:42:22

+0

有什麼建議嗎? – rahrahruby 2013-05-14 04:42:58

+0

你嘗試了什麼? – pierrotlefou 2013-05-14 05:02:01

回答

2

正則表達式對於一般的數字格式來說是一個非常複雜的表達式,因爲數字有各種形狀和顏色。你需要決定什麼樣的數字你有興趣,整數,有/無符號,浮動,指數表示法,接受/不接受領先+ ...嘗試看看http://regexlib.com正則表達式,以滿足您的需求。當然,正如評論中所建議的那樣,請不要用regexen來解析標記語言。

例如,從網站上面提到,你可以找到正則表達式:

/^[-+]?\d+(\.\d+)?$/ 

隨着描述:此匹配任何實數,以小數點後可選的小數點和數字,以及可選的正(+)或負( - )指定。

這是由您決定是否要附上你的正則表達式在^$,或者你有什麼要求例如。請注意,我給出的正則表達式示例只有匹配(即驗證)這些數字,要真正抓住它們,您將不得不關注那些[+-]符號。

+0

完美運作,感謝您的幫助 – rahrahruby 2013-05-14 05:15:25

2

相信用於抓住一個或多個數字的正則表達式表達是/>(\d+)</這意味着一個或多個數字(I相信,不太好於正則表達式)。雖然我使用http://nokogiri.org/進行html解析。

+0

我不認爲'>'和'<'是Ruby正則表達式中的特殊字符。如果字符串的第一行必須是一系列數字,或者「\ A」和「\ Z」,如果整個字符串必須是一系列數字,則可能需要'^'和'$'。 – 2013-05-14 05:04:02

+0

謝謝羅裏:) – Senjai 2013-05-14 05:10:49

+0

優秀推薦 – rahrahruby 2013-05-14 05:17:04