带附加条件的正则表达式拆分字符串



我有像

这样的字符串
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']

相关内容

  • 没有找到相关文章

最新更新