【发布时间】:2013-12-11 00:54:35
【问题描述】:
我有以下脚本,它读取一个文件,然后根据以</h1> 结尾的行将其放入一个数组中。如何只读取<h1> 和</h1> 之间的内容?
这是我的脚本:
out_array = []
open('foo.html') do |f|
f.each('</h1>') do |record|
record.gsub!("\n", ' ')
out_array.push record
end
end
# print array
p out_array
这是我的html
</h1>
akwotdfg
<h1>
<h1>I am foo</h1>
<h1>
Stubborn quaz
</h1>
<h3>
iThis
is a reas
long one line shit
</h3>
<h1>I am foo</h1>
这是我的输出:
["</h1>", " akwotdfg <h1> <h1>I am foo</h1>", " <h1> Stubborn quaz </h1>", " <h3> iThis is a reas long one line shit </h3> <h1>I am foo</h1>", " "]
【问题讨论】:
-
这个程序是基于行的,而 HTML 本身是基于标签的。不是说不可能,但是用手工制作的正则表达式解析 HTML 是很痛苦的。