【发布时间】:2012-04-08 23:07:48
【问题描述】:
我正在尝试使用正则表达式制作一个简单的基于 Python 的 HTML 解析器。我的问题是试图让我的正则表达式搜索查询找到所有可能的匹配项,然后将它们存储在一个元组中。
假设我有一个页面,其中存储在变量HTMLtext 中:
<ul>
<li class="active"><b><a href="/blog/home">Back to the index</a></b></li>
<li><b><a href="/blog/about">About Me!</a></b></li>
<li><b><a href="/blog/music">Audio Production</a></b></li>
<li><b><a href="/blog/photos">Gallery</a></b></li>
<li><b><a href="/blog/stuff">Misc</a></b></li>
<li><b><a href="/blog/contact">Shoot me an email</a></b></li>
</ul>
我想对此文本执行正则表达式搜索并返回一个包含每个链接的最后一个 URL 目录的元组。所以,我想返回这样的东西:
pages = ["home", "about", "music", "photos", "stuff", "contact"]
到目前为止,我可以使用正则表达式搜索一个结果:
pages = [re.compile('<a href="/blog/(.*)">').search(HTMLtext).group(1)]
运行这个表达式会生成pages = ['home']。
我怎样才能让正则表达式搜索继续整个文本,将匹配的文本附加到这个元组?
(注:I know I probably should NOT be using regex to parse HTML。但我还是想知道怎么做。)
【问题讨论】: