我正试图从网站上获取一些信息。我想要的信息在一个表中,所以我做了一个正则表达式,但我不知道正确的方法来简化它。
以下是我想要简化的正则表达式的两个部分:
<br>(.*)<br>(.*)<br>(.*)
<tr><td>(.+)r>(.+)r>(.+)r>(.+).+</td></tr> # This part should be repeated n times(n = 1 to 10)
我查看了python文档,但我无法实现如何操作。也许你可以给我一个提示。
谢谢你, μF的。
答案 0 :(得分:3)
答案 1 :(得分:3)
这是错误的方法,除非你试图从一个小碎片中剔除一些数据。
如果你使用了宽容的HTML会好得多。前面提到的BeautifulSoup是一个很好的,但它停滞不前,我不相信它会被积极维护。
强烈推荐的Python解析器是lxml。
在我们的一个本地邮件列表here上讨论解析XHTML有一个很长的线程,你可能会发现它很有用。
答案 2 :(得分:1)
您只需将块放入parens然后使用{...}运算符,例如:
(foo...){1,10}
匹配那里的东西的1到10个实例。鉴于上面的示例,您可以嵌套:
((f..)(b..)){1,10}