我在括号中注明了一个带有0-n参数的字符串。 我想得到括号之间的词。例如:
这是[测试]
应该返回数组['is', 'test']
我不是正则表达的专家,而且我已经失去了很多时间。 这是我目前所拥有的,但它不起作用。
var regex = /\[([^}]+)\]/;
var m = "this [is] a [test]".match(regex);
console.log(m);
非常感谢任何帮助。
答案 0 :(得分:3)
使用以下正则表达式,您使用了错误的括号
/\[([^\]]+)\]/
您也可以使用
/\[(\w+)\]/
答案 1 :(得分:3)
由于您需要捕获的文本,因此无法使用String#match
。将RegExp#exec
与全局标记一起使用:
var regex = /\[([^\]]+)]/g; // RegExp has a global flag to find all matches
var arr = []; // An array for our captured texts
while ((m = regex.exec("this [is] a [test]")) !== null) {
arr.push(m[1]); // Captured text is inside Group 1
}
console.log(arr);

正则表达式细分:
\[
- 打开文字方括号([^\]]+)
- 与]
以外的任何符号匹配的捕获组(请注意,必须在字符类中对其进行转义)]
- 文字]
(请注意,它不必在字符类之外进行转义)。答案 2 :(得分:0)