我对此字符串有疑问:
{1 (Test)}{2 ({3 (A)}{4 (B)}{5 (C)})}{100 (AAA{101 (X){102 (Y)}{103 (Z)})}
我想将其{
用于第一个定界符和}
最后一个定界符,但是如您所见,我有嵌套的方括号。
我如何将这个字符串拆分成这样的东西:
1 (Test)
2 ({3 (A)}{4 (B)}{5 (C)})
100 (AAA{101 (X){102 (Y)}{103 (Z)})
之后,我将需要再次将其拆分为嵌套括号。
您可以使用/([\{\}])/
regexp分割字符串并扫描结果数组以提取标记和深度级别。
var string = "{1 (Test)}{2 ({3 (A)}{4 (B)}{5 (C)})}{100 (AAA{101 (X){102 (Y)}{103 (Z)})}";
var tokens = string.split(/([\{\}])/), result = [], depth = 0;
tokens.forEach(function scan(token){
if(!token) return;
if(token === "{") {
depth++;
return;
}
if(token === "}") {
depth--;
return;
}
result.push({depth: depth, token: token});
});
console.dir(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句