Python正则表达式什么都不重复?

时间:2014-04-22 04:19:29

标签: python regex

所以,我试图做的是逐行解析文本文件到列表中。

我已成功完成了这项工作。现在,我需要将所有以.html结尾的链接拉出来。

因此,我认为我会解析每一行,如果它匹配*.html。所以我认为最好的方法是使用正则表达式。下面是我的代码,有问题的错误是返回的错误,没有重复。我引用了它引用的那条线。

代码:

compiled = re.compile("*.html") //Error Here
[m.group(0) for l in content for m in [compiled.search(l)] if m]

仅为了记录,我试图提取看起来像的链接:

Nws_NewsDetails.aspx@Site_Id=2&lang=1&NewsID=148513&CatID=19&Type=Home&GType=1.html

但它们可能真的是随机的,因此是* .html

1 个答案:

答案 0 :(得分:4)

在正则表达式中,*是一个元字符,它具有特殊含义。这就是它给你错误的原因。您可以使用以下RegEx,

re.compile(".*\.html")

这里,.*表示任何字符都可以出现任意次数(0次或更多次)(这是*在正则表达式中的实际含义),然后你想匹配{{1因为我们将它与.匹配,因为dot也有特殊含义(它匹配任何字符),我们需要使用\.来转义它。