我刚开始第一次使用正则表达式,并试图使用它来解析HTML表中的某些数据。我正在尝试抓住<tr >
和</tr>
标记之间的所有内容,然后再次进行类似的正则表达式来创建JSON数组。
我尝试使用此方法,但它仅与第一组匹配,而与其余所有组都不匹配。
<tr >(.*?)</tr>
我如何才能找到这些标签之间的所有匹配项?
尽管使用正则表达式来完成这项工作不是一个好主意(出错的方法有很多),但是您的模式基本上是正确的。
使用Python返回所有匹配项
问题就变成了在Python中返回所有匹配项或捕获组。有两种基本方法:
与发现者
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])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句