我需要得到“274.20p”:
<td nowrap="nowrap" class="dataRegularUlOn" style="text-align: right;">274.20p</td>
我想在:
上做正则表达式<td class="dataRegularUlOn" >
如下所示:
/<td(.*?)class="dataRegularUlOn"(.*?)>/
我在linux上使用ruby。
THKS
答案 0 :(得分:1)
为什么你想编写自己的HTML解析器,当时已经有很多功能完备的HTML解析器?
require 'nokogiri'
doc = Nokogiri::HTML('
<td nowrap="nowrap" class="dataRegularUlOn" style="text-align: right;">
274.20p
</td>')
p doc.search('.dataRegularUlOn').map(&:text)
# => ["272.20p"]
答案 1 :(得分:0)
为什么不使用http://github.com/whymirror/hpricot之类的东西,然后你可以使用xpath来检索元素。
答案 2 :(得分:0)
你在解析一个html文件吗?我认为你应该使用XPath,真的很容易使用。对于Ruby,有Nokogiri。
使用regexp,我会这样做:
ruby_sub_string = /.*[\d]+\.[\d]{1,2}p(.*)/.match(my_string)
ruby_sub_string[1]
它应该做的伎俩。我现在不能尝试它。
答案 3 :(得分:0)
试试这个正则表达式:
/<td[^>]*class="dataRegularUlOn"[^>]*>([^<]*)<\/td>/