这就是我需要的正确顺序:
这样做的好方法是什么?
编辑:以下是字符串示例:
嗨,我是一个字符串[这个:是,如何] [它:工作,但是,那里] [可能是括号,部分,没有,冒号] [[嵌套部分应该被忽略?]]
编辑:以下是结果:
提取后:'嗨,我是一个字符串'
标识为'this'的数组:['是','how']
标识为'it'的数组:['有效','但','有']
没有标签的数组:['可能由括号','部分','没有','冒号']
没有标签的数组:[]
答案 0 :(得分:3)
var results = [];
s = s.replace(/\[+(?:(\w+):)?(.*?)\]+/g,
function(g0, g1, g2){
results.push([g1, g2.split(',')]);
return "";
});
给出结果:
>> results =
[["this", [" is", " how"]],
["it", [" works", " but", " there"]],
["", ["might be bracket", " parts", " without", " colons "]],
["", ["nested sections should be ignored?"]]
]
>> s = "hi, i'm a string "
请注意,它会在令牌之间留下空格。此外,您可以通过调用[[]]
来删除早期阶段的s = s.replace(/\[\[.*?\]\]/g, '');
令牌 - 此代码会将其捕获为普通组。