好的,我有一个由一些开源软件输出的表,但它没有以实际的表格式输出,例如
<table>
<thead>
<td>Heading</td>
<thead>
<tbody>
<tr>
<td>Content</td>
</tr>
<tbody>
</table
相反,开发该软件的人认为像这样输出表格是个好主意
+------------+-------------+-------+-------------+------------+---------------+----------+
| HEADING 1 | HEADING 2 | ETC | ANOTHER | HEADING3 | HEADING4 | SML |
+------------+-------------+-------+-------------+------------+---------------+----------+
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
| content | more content | cont | More more | content | content 2.0 | litl |
+------------+-------------+-------+-------------+------------+--------------+----------+
| TOTALS AGENTS:21 | total| total| total| total| total|
+------------+-------------+-------+-------------+------------+--------------+----------+
所以我不能建立一个网络刮板来获取数据,或者我不知道我是否可以建立一个刮板来刮掉它,因为它全部包裹在一个<pre> </pre>
标签内。因此,相反,我一直在尝试使用 ruby 和 Regex 来尝试完成工作,到目前为止,我已经设法获得了所有领先|
的信息,而且我也设法获得了标题,+-------+-----
但到目前为止,我似乎已经一直重复该模式,它不想重复自己,好吧但是现在说够了这是我到目前为止使用的代码
text.lines.to_a.each do |line|
line.sub(/^\| |^\+*-*\+*\-*/) do |match|
puts "Regexp Match: " << match
end
STDIN.getc
puts "New Line "<< line
end
例如,第一行的输出只能是+-----------------+----------
CSV 格式,因此可以用 'sGsub
替换剩余|
的,
's
我可以使用 PHP 或 Ruby,所以任何答案都非常受欢迎