0

私は現在、正規表現を持っています。これは、 returns'([^: ]+):([^ ]+)?'のような文字列が与えられると(pythonsを使用して)。This is a correct:test msg: a b c bool:y[('correct', 'test'), ('msg', ''), ('bool', 'y')]re.findall

私は実際にそれがのようなものを返すことを望み[('correct', 'test'), ('msg', 'a b c'), ('bool', 'y')]ます。正規表現に2番目のチャンクの内部を調べて、そこにあるかどうかを確認するにはどうすればよい:ですか?

4

1 に答える 1

4

2番目の部分で前向きな先読みを使用できます。

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