首页 > 解决方案 > 正则表达式 - 仅当字母后跟逗号 + 逗号 + 忽略括号中的逗号时才拆分

问题描述

我试图找出一种基于正则表达式中的逗号拆分值的方法,但问题是我想忽略括号内的逗号 ()

例子 :

'hist1234,geog293,lap_933,(a-20,110,60),(z-8,9,10),POLY5,9,3,8,ro water'

预期输出:

['hist1234', 'geog293', 'lap_933', '(a-20,110,60)', '(z-8,9,10)', 'POLY5,9,3,8', 'ro water']

我试过: ,\s*(?![^()]*)) 用于逗号并忽略括号中的逗号,但我不确定是否忽略它是一个数字后跟一个逗号

标签: pythonregex

解决方案


既然您保证“括号内没有括号”,那么这将起作用:

正则表达式

,(?![^()]+\))(?=[a-zA-Z(])

代替

, 

^ 逗号 + 空格

如果拆分则忽略replace

https://regex101.com/r/Mk8mAI/1

  • ,- 捕获一个逗号
  • (?![^()]+\))- 保证在我前面不是内容后跟右括号
  • (?=[a-zA-Z(])- 保证前面是一个字母或左括号

推荐阅读