我的文字如下:做[A]和[B]
我想提取由 [和] 包装的所有单词。
我正在使用匹配方法:
var text = "do[A]and[B]";
var regexp = /\[(\w+)\]/g;
var result = text.match(regexp);
所以我说我想匹配[]包装的所有单词,但只有包装的部分应该在group / memory中。我一直在结果中得到[]括号:
["[A]", "[B]"]
预期结果:
["A","B"]
我认为这是一块蛋糕,但我必须遗漏一些东西。
答案 0 :(得分:2)
对于这种特殊情况,您不需要捕获组:
>>> "do[A]and[Bbbb]".match(/\w+(?=])/g);
["A", "Bbbb"]
会做的。
答案 1 :(得分:1)
为了使用子模式,没有简单的快捷方式。
相反,您必须在字符串上重复执行正则表达式并收集所需的子模式。像这样:
var text = "do[A]and[B]",
regexp = /\[(\w+)\]/g,
result = [], match;
while(match = regexp.exec(text)) {
result.push(match[1]);
}