重复的正则表达式组

1 投票
3 回答
856 浏览
提问于 2025-04-15 17:32

我正在尝试从一个网站获取一些信息。我想要的信息在一个表格里,所以我写了一个正则表达式,但我不知道怎么简化它。

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

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

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

我查阅了Python的文档,但还是不知道该怎么做。也许你能给我一点提示。

谢谢,
mF。

3 个回答

1

你只需要把这个代码块放在括号里,然后使用 {...} 这样的符号,比如:

(foo...){1,10}

这样可以匹配里面的内容出现1到10次。根据你上面的例子,你可以把这些嵌套在一起:

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

正则表达式匹配开放标签,除了XHTML自包含标签

"你有没有试过用XML解析器呢?"

编辑:这个方法不错:Beautiful Soup

3

这样做是不对的,除非你只是想从一个小片段中抓取一些数据。

如果你使用一个更宽容的HTML解析器会更好。之前提到的BeautifulSoup是个不错的选择,但它现在有些停滞,我觉得它可能没有在积极维护了。

对于Python来说,一个非常推荐的解析器是lxml

我们本地的邮件列表上有一个关于解析XHTML的长讨论,你可以在这里找到,可能对你也有帮助。

撰写回答