如何获得一行中每组正则表达式的重复次数?

问题描述 投票:0回答:1

如何使用python如何在regexp中获得每个组的重复次数,并获得此组的列表?

例如:字符串(ab)*.*?(cd)*上的此正则表达式ababababcdcddscdcdfscdcd应该为第一个组返回4,因为ab在字符串中存在4次。并为第二组返回6,因为cd在字符串中存在6次。

此功能或其他功能也应返回组列表和该行的另一部分。对于此字符串,它必须以[ab,ab,ab,ab,cd,cd,ds,cd,cd,fs,cd,cd]列出。我尝试使用匹配对象,但是找不到找到每个组重复次数的方法。

非常感谢大家的帮助。

python regex
1个回答
0
投票

[量化捕获组时,它仅捕获第一个匹配项,而不是所有匹配项,因此您无法获得[ab, ab, ab, ab, ...]

您将量词放在了一个组内,以便所有重复都被立即捕获。

((ab)*).*?((cd)*)

捕获组将是:

["abababab", "ab", "cdcdcdcdcdcd", "cd"]

您可以将偶数元素的长度除以下一个元素的长度以获得重复数。

© www.soinside.com 2019 - 2024. All rights reserved.