gpt4 book ai didi

python - 使用 python 正则表达式匹配字符串

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:58 25 4
gpt4 key购买 nike

我在使用 python reg exp 来匹配 html 中的 str 时遇到问题。

 support= re.findall(r'<span id="cos_support-(\d)*">(\d)*</span>', unicodePage)
print(support)

我们的输出是

('9', '6') ('7', '4') ('6', '3') ('5', '4') ('1', '4') ('5', '3').

但是在我的 Notepad++ 中,我使用reg来匹配str。输出是这样的

<span id="cos_support-3102208">314</span>

我想要这个结果。

最佳答案

正则表达式搜索将返回用圆括号括起来的组。就您而言,您在正则表达式中定义了两个组,并且每次匹配时仅返回这些部分。

要检索完整匹配项,您需要用圆括号将整个正则表达式括起来,如下所示:

support= re.findall(r'(<span id="cos_support-(\d)*">(\d)*</span>)', unicodePage)

此外,您的正则表达式中存在非严重错误。您应该使用 (\d+) 而不是 (\d)*,因为这会将整个数字序列包含到匹配组中,而不仅仅是单个数字,如下所示并要求至少存在一位数字。因此生成的表达式应如下所示:

support = re.findall(r'(<span id="cos_support-(\d+)">(\d+)</span>)', unicodePage)

最后,如果你不想捕获内部组而只需要完整匹配,则可以去掉它们各自的圆括号:

support = re.findall(r'(<span id="cos_support-\d+">\d+</span>)', unicodePage)

关于python - 使用 python 正则表达式匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com