正则表达式使用分隔符拆分文本但在分隔符位于()之间时不要拆分

时间:2014-09-22 11:19:14

标签: java regex scala split

我想在Scala中使用,分隔符拆分文本,但是当,在括号中时不要拆分但是提取,并忽略括号,例如分割以下内容:

one, two (,) three

我应该得到一个包含以下内容的数组:

`one`
`two , three`

提前谢谢

2 个答案:

答案 0 :(得分:1)

(?![^)()]*\)),|\((?=,)|(?<=,)\)

你可以试试这个。请参阅演示:http://regex101.com/r/kM7rT8/2

您必须加入列表的最后三个内容才能获得第二场比赛。

答案 1 :(得分:1)

您可以使用此基于外观的正则表达式:

(?<!\)), *(?!\))

在Java中:

(?<!\\)), *(?!\\))

RegEx Demo

Code Demo

它会将示例输入分解为:

  • one
  • two (,) three