我试图按空格分割字符串,但忽略括号中或左括号后的字符串。
例如,如果括号是平衡的,则该解决方案可以正常工作:
// 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']
我应该如何实现这个目标?
饮歌长啸
相关分类