Python 正则表达式:如何使正则表达式匹配重叠?

Python 正则表达式:如何使正则表达式匹配重叠?,python,regex,parsing,match,Python,Regex,Parsing,Match,我有一个如下格式的字符串: '0=文本定义值1=text2=text3,text3(text3)3=text4' 具有未知数量的值。我正在尝试获取一个正则表达式,以便为每个数字描述对匹配0和“文本定义值”。现在,我有 '([0-9]{1,2})?=?(.*)?[0-9]{0,2}?[=$]' 作为我的正则表达式,但这只与字段中的所有其他值匹配。关于如何使它与所有这些匹配,有什么建议吗 谢谢您可以使用lookahead来确定下一个分区的位置: import re pattern = re.com

我有一个如下格式的字符串:

'0=文本定义值1=text2=text3,text3(text3)3=text4'

具有未知数量的值。我正在尝试获取一个正则表达式,以便为每个数字描述对匹配0和“文本定义值”。现在,我有

'([0-9]{1,2})?=?(.*)?[0-9]{0,2}?[=$]'

作为我的正则表达式,但这只与字段中的所有其他值匹配。关于如何使它与所有这些匹配,有什么建议吗


谢谢

您可以使用lookahead来确定下一个分区的位置:

import re

pattern = re.compile(r"(\d+)\s+=\s+(.*?)(?=\s+\d+\s+|$)")

your_text = "0 = text defining value 1 = text2 2 = text3, text3 (text3) 3 = text4"

pairs = pattern.findall(your_text)
# [('0', 'text defining value'),
#  ('1', 'text2'),
#  ('2', 'text3, text3 (text3)'),
#  ('3', 'text4')]

如果这就是你想要的,你的问题就有点模糊。

谢谢!对不起,我对regex很陌生,还没有真正学会所有东西的正确命名法。这可以满足我的需要,谢谢!