2016-09-19 45 views
2

我有一个目标字符串,看起来像这样:正则表达式:仅匹配外括号(以便文本不会在括号内分割)?

"foo (foo, foofoo), bar (foobar), foo, bar (barbar, foo), bar, foo" 

,我想:

["foo (foo, foofoo)", "bar (foobar)", "foo", "bar (barbar, foo)", "bar", "foo"] 

仅外括号分裂在", "目标。与括号外的逗号相匹配的正则表达式是什么?就我而言,嵌套括号不会出现,我不必考虑它们。

我个人使用Python,但任何语言的例子都很好。

+0

一般而言,没有正则表达式,其可以处理此,因为括号可以嵌套到任意深度。我想你可能需要使用解析器来处理一般问题。 –

+0

谢谢,我编辑过。 – akai

回答

4
,(?![^(]*\)) 

你可以用它来分割。参见demo.This适用于你说的没有嵌套的()

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

+0

谢谢你,天才。我花了很长时间才明白哈哈。 – akai

+0

@开心欢迎:) – vks

+1

完美的是,我在其他线程上发现了很多其他的不适用于Swift的答案。这是第一个适用于Swift正则表达式的答案:) –

相关问题