用'],['拆分字符串,但保留括号

Lio*_*cer 1 python string split

我有一个这种格式的字符串

a = "[a,b,c],[e,d,f],[g,h,i]"
Run Code Online (Sandbox Code Playgroud)

我要拆分的每个部分都是分开的],[.我尝试了a.split("],["),我删除了末端括号.

在我的例子中,这将是:

["[a,b,c","e,d,f","g,h,i]"]
Run Code Online (Sandbox Code Playgroud)

我想知道在拆分后是否有办法保留括号?

期望的结果:

["[a,b,c]","[e,d,f]","[g,h,i]"]
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 6

问题是str.split从结果列表中删除您分割的任何子字符串.我认为在这种情况下使用模块中稍微强大的split功能会更好re:

>>> from re import split
>>> a = "[a,b,c],[e,d,f],[g,h,i]"
>>> split(r'(?<=\]),(?=\[)', a)
['[a,b,c]', '[e,d,f]', '[g,h,i]']
>>>
Run Code Online (Sandbox Code Playgroud)

(?<=\])是一个寻找的后视断言].同样,(?=\[)是一个寻找的先行断言[.这两种结构都在正则表达式语法中进行了解释.