首页 > 解决方案 > 用不在括号内的逗号分隔?

问题描述

我想用不在 Excel VBA 括号内的逗号分隔。

我需要用于拆分字符串的 VBA 脚本

前任:

myString = "ab, cd(c1,c2,d1), ef, gh ,ij(i1,i2,j1,j2)"

E 需要输出如下:

[ 
  ab,
  cd(c1,c2,d1),
  ef,
  gh,
  ij(i1,i2,j1,j2) 
]

标签: regexexcelvba

解决方案


假设您的括号始终是单嵌套的,那么在以下正则表达式上拆分应该可以:

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

这使用了一个否定的前瞻,它断言我们不会在一个逗号之后分割,之后 a) 没有首先遇到一个(,这意味着正在打开另一个组。

我不知道 VBA 是否会在其正则表达式中支持前瞻。检查下面的演示以查看该模式是否有效。

演示


推荐阅读