【发布时间】:2020-11-03 00:37:02
【问题描述】:
我正在尝试按空格分割字符串,但忽略括号中或左括号之后的字符串。我关注了this solution,但我的情况有点复杂。例如,如果括号是平衡的,则该解决方案可以正常工作:
// original string
let string = 'attribute1 in (a, b, c) attribute2 in (d, e)';
words = string.split(/(?!\(.*)\s(?![^(]*?\))/g);
console.log(words)
拆分后的预期结果:
words = ['attribute1', 'in', '(a, b, c)', 'attribute2', 'in', '(d, e)']
但是,如果括号不平衡,假设:
// original string
let string = 'attribute1 in (a, b, c) attribute2 in (d, e';
那么我预期的结果应该是:
['attribute1', 'in', '(a, b, c)', 'attribute2', 'in', '(d, e']
而不是
['attribute1', 'in', '(a, b, c)', 'attribute2', 'in', '(d,', 'e']
我应该如何做到这一点?
【问题讨论】:
-
缺少的括号是否一致?您可以在拆分之前做一个预先步骤来添加括号吗?
-
缺少的括号是真实情况。基本上用户会在前端的搜索框中输入这个字符串,它会随着输入的变化动态拆分这个字符串。
-
能否在问题中包含拆分代码?
标签: javascript regex