4

次のような文字列があります。

a = '5:::{"test":[{"a":1,"b":2},{"a":2,"b":3}]}4:::{"something":[{"d":1,"e":2},{"d":2,"e":3}]}'

これを次の値のリストに分割したいと思います。

['5:::{"test":[{"a":1,"b":2},{"a":2,"b":3}]}','4:::{"something":[{"d":1,"e":2},{"d":2,"e":3}]}']

次のような正規表現を試しました。

b = re.findall(r'[0-9]:::.*(?=[0-9]:::)|(?=$)',a)

数字で始まり、3 つのコロンが続き、[0-9]::: がヒットするか、文字列の末尾に達するまで、任意の文字が続く部分を照合しようとします。これは完全に間違っているようですが、ここで続行する方法がわかりません。

Thx マーカス

4

2 に答える 2

2

(\d:::\{.*?\}(?=\d))|(\d:::\{.*?\})$

http://regexr.com?34opb

于 2013-05-03T19:13:22.437 に答える