0

我目前有 regex '([^: ]+):([^ ]+)?',当给定一个类似This is a correct:test msg: a b c bool:y返回的字符串时[('correct', 'test'), ('msg', ''), ('bool', 'y')](使用 pythons re.findall)。

我实际上希望它返回类似[('correct', 'test'), ('msg', 'a b c'), ('bool', 'y')]. 如何强制正则表达式查看第二个块,看看里面是否有 a :

4

1 回答 1

4

您可以在第二部分使用积极的前瞻,例如

'([^ :]+): *(.+?)?(?:(?= [^ ]+:)|$)'
于 2012-10-12T00:26:55.977 回答