gpt4 book ai didi

python - 使用正则表达式查找两个字符串之间的所有匹配项

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:01 24 4
gpt4 key购买 nike

我刚刚开始第一次使用正则表达式,并尝试使用它来解析 HTML 表中的一些数据。我试图捕获 <tr > 之间的所有内容和</tr>标签,然后再次制作类似的正则表达式来创建 JSON 数组。

我尝试使用它,但它仅与第一组匹配,而不与其余所有组匹配。

<tr >(.*?)</tr>

如何找到这些标签之间的所有匹配项?

最佳答案

虽然使用正则表达式来完成这项工作是一个坏主意(有很多方法会出错),但您的模式基本上是正确的。

使用 Python 返回所有匹配

接下来的问题就变成了如何在 Python 中返回所有匹配项或捕获组。有两种基本方法:

  1. 查找器
  2. 查找全部

使用 finditer

for match in regex.finditer(subject):
print("The Overall Match: ", match.group(0))
print("Group 1: ", match.group(1))

使用 findall

findall有点奇怪。当您有捕获组时,要访问捕获组和整体匹配,您必须将原始正则表达式括在括号中(以便也捕获整体匹配)。在您的情况下,如果您希望能够访问标签的外部和内部(您使用组 1 捕获的),您的正则表达式将变为: (<tr >(.*?)</tr>) 。然后你就可以:

matches = regex.findall(subject)
if len(matches)>0:
for match in matches:
print ("The Overall Match: ",match[0])
print ("Group 1: ",match[1])

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

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