【发布时间】:2020-06-02 08:16:38
【问题描述】:
我正在抓取网页的 HTML 代码,目前正在尝试构建一个正则表达式来获取我需要的信息。 在我的示例中,该模式重复了大约 20 次,如下所示: 它应该以 tivo 开头(因为它将以 Ativo 或 Inativo 开头)并且应该以“Ver Detalhes”结尾。 正如我之前所说,这种模式重复了大约 20 次。
我使用的代码行是:
posts=re.findall('(ativo.*?ver det)',text,re.IGNORECASE)
但它不起作用,因为它只是得到 12 场比赛,我不明白为什么。 我试过使用 .* 而不是 .*?但随后它只提取 3 个匹配项。
该文件可在以下链接中找到: Source file
这是可以提取的东西吗?
【问题讨论】:
-
您的文件不起作用(404),您的模式以“ativo”开头(尽管您说的是“tivo”),最后
.将不匹配换行符 默认情况下,因此该模式仅在所有位都在同一行时才有效(除非您选择使用re.DOTALL)。 -
您是否介意在您的问题中包含示例数据。我建议不要使用外部链接
-
@TimBiegeleisen 我想请您停止重新打开明显的欺骗行为。请考虑重新关闭。
-
@TimBiegeleisen 您可以使用 Python regex, matching pattern over multiple lines.. why isn't this working? 作为关闭理由。
-
您为什么接受了一个无效解决方案的答案?您不必仅仅因为它是唯一的答案就接受它。你的问题是重复的。它应该被关闭,并删除下面的答案,因为回答者不想/无法修复代码。