如何按'+'分割字符串且不拆分方括号内的内容
适配方括号场景的解决方案
你原来适配圆括号的正则逻辑完全可以复用,只需要把规则里的圆括号替换为转义后的方括号即可,最终正则为:\+(?![^\[\]]*\])
直接把上述正则传入split方法即可实现需求,示例效果如下:
// 以JS为例,其他支持正则的语言规则通用 const inputStr = "a+[b*a+c]+c+[ab+c]" const splitRegex = /\+(?![^\[\]]*\])/g const res = inputStr.split(splitRegex) // 输出结果:['a', '[b*a+c]', 'c', '[ab+c]']
规则补充说明
如果需要同时兼容圆括号、方括号两种场景,两种规则可以直接叠加,合并后正则为:\+(?![^()]*\))(?![^\[\]]*\])
内容的提问来源于stack exchange,提问作者THEseko
相关产品推荐
相关产品推荐

