下面是我要浏览的html的摘录。
<div class="text">
<h3>
<a href="http://www.faith.co.uk/">
Rodeo Sinclair
</a>
</h3>这是我的ruby代码。
@doc = open(url) { |f|
@doc = f.read
}
output = @doc.scan(/<h3><a href=(.*?)>/) 由于html文件中的新行和空格,这不起作用。有什么办法可以让我绕过这个问题吗?
发布于 2012-02-10 13:16:08
我可以很容易地创建一个正则表达式来解析您的HTML片段。
但是,我鼓励您养成使用XML/HTML解析器与HTML交互的习惯。
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open(url))
output = doc.css('div h3 a').each do |link|
puts link.attr("href")
end有关反对使用正则表达式解析超文本标记语言的令人信服的论点,请参阅RegEx match open tags except XHTML self-contained tags。
==EDIT==已更改为each循环
发布于 2012-02-10 13:11:08
向匹配项添加(可选)空格:
@doc.scan(/<h3>\s*<a href=(.*?)>/) https://stackoverflow.com/questions/9222978
复制相似问题