假设我有一个这样的字符串,其中的项目用逗号分隔,但在带有括号内容的项目中也可能有逗号:
(编辑:对不起,忘了提一些项目可能没有括号内容)
"Water, Titanium Dioxide (CI 77897), Black 2 (CI 77266), Iron Oxides (CI 77491, 77492, 77499), Ultramarines (CI 77007)"
Run Code Online (Sandbox Code Playgroud)
如何只用那些不在括号内的逗号分割字符串?即:
["Water", "Titanium Dioxide (CI 77897)", "Black 2 (CI 77266)", "Iron Oxides (CI 77491, 77492, 77499)", "Ultramarines (CI 77007)"]
Run Code Online (Sandbox Code Playgroud)
我想我必须使用正则表达式,也许是这样的:
([(]?)(.*?)([)]?)(,|$)
Run Code Online (Sandbox Code Playgroud)
但我仍然想让它发挥作用.
Avi*_*Raj 26
使用否定先行来匹配不在括号内的所有逗号.根据匹配的逗号分割输入字符串将为您提供所需的输出.
,\s*(?![^()]*\))
Run Code Online (Sandbox Code Playgroud)
>>> import re
>>> s = "Water, Titanium Dioxide (CI 77897), Black 2 (CI 77266), Iron Oxides (CI 77491, 77492, 77499), Ultramarines (CI 77007)"
>>> re.split(r',\s*(?![^()]*\))', s)
['Water', 'Titanium Dioxide (CI 77897)', 'Black 2 (CI 77266)', 'Iron Oxides (CI 77491, 77492, 77499)', 'Ultramarines (CI 77007)']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |