【问题标题】:Repeating regex groups重复正则表达式组
【发布时间】:2010-12-31 15:51:09
【问题描述】:

我正在尝试从网站获取一些信息。我想要的信息在表格中,所以我做了一个正则表达式,但我不知道简化它的正确方法。

以下是我想简化的正则表达式的两个部分:

<br>(.*)<br>(.*)<br>(.*)

<tr><td>(.+)r>(.+)r>(.+)r>(.+).+</td></tr> # This part should be repeated n times(n = 1 to 10)

我浏览了 python 文档,但我不知道该怎么做。也许你可以给我一个提示。

谢谢, mF.

【问题讨论】:

  • 不要对 HTML 使用正则表达式!使用 HTML 解析器。

标签: python html regex


【解决方案1】:

除非您试图从一个小片段中提取一些数据,否则这是错误的方法。

如果您使用宽容的 HTML 会更好。前面提到的 BeautifulSoup 是一个很好的,但它停滞不前,我不相信它已经被积极维护了。

强烈推荐的 Python 解析器是 lxml

在我们的本地邮件列表here 上有一个讨论解析 XHTML 的长线程,您可能会发现它也很有用。

【讨论】:

    【解决方案2】:

    您只需将块放在括号中,然后使用 {...} 运算符,例如:

    (foo...){1,10}
    

    匹配内部事物的 1 到 10 个实例。鉴于上面的示例,您可以嵌套这些:

    ((f..)(b..)){1,10}
    

    【讨论】:

      【解决方案3】:

      RegEx match open tags except XHTML self-contained tags

      “您是否尝试过使用 XML 解析器?”

      编辑:这是要走的路:Beautiful Soup

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 2011-03-11
        • 2017-01-07
        • 2019-12-19
        • 2019-01-25
        • 2018-04-09
        相关资源
        最近更新 更多