我有像
这样的字符串a = 'text1, text2 (subtext1, subtext2), text3'
需要用逗号分隔字符串,但只能是那些不在框架括号内的部分:
splited = ['text1', 'text2 (subtext1, subtext2)', 'text3']
如何使用正则表达式?
使用基于负向前看断言的正则表达式
>>> a = 'text1, text2 (subtext1, subtext2), text3'
>>> re.split(r',(?![^()]*))', a)
['text1', ' text2 (subtext1, subtext2)', ' text3']
>>> re.split(r',s*(?![^()]*))', a)
['text1', 'text2 (subtext1, subtext2)', 'text3']
演示或
基于正向前看的正则表达式。
>>> re.split(r',s*(?=[^()]*(?:(|$))', a)
['text1', 'text2 (subtext1, subtext2)', 'text3']