Javascript RegEx从方括号内获取文本

Javascript RegEx从方括号内获取文本,javascript,jquery,regex,Javascript,Jquery,Regex,可能重复: 我有一个函数,在这个函数中,我必须获取包含在方括号中的文本,例如,不包含在方括号中的文本 this is [test] line i [want] text [inside] square [brackets] 从上面一行我要的话 试验 想要 里面 括号 我试图用/\[(.*?\]/g来实现这一点,但我没有得到满意的结果,我得到了括号内的单词,但括号内的单词不是我想要的 我确实搜索了一些类似的问题,但这些解决方案对我来说都不起作用。这里是一个找到的(?只使用并输出括号内的内容 v

可能重复:

我有一个函数,在这个函数中,我必须获取包含在方括号中的文本,例如,不包含在方括号中的文本

this is [test] line i [want] text [inside] square [brackets]
从上面一行我要的话

试验

想要

里面

括号

我试图用
/\[(.*?\]/g
来实现这一点,但我没有得到满意的结果,我得到了括号内的单词,但括号内的单词不是我想要的

我确实搜索了一些类似的问题,但这些解决方案对我来说都不起作用。这里是一个找到的
(?只使用并输出括号内的内容

var data = "this is [test] line i [want] text [inside] square [brackets]"
var re= /\[(.*?)\]/g;
for(m = re.exec(data); m; m = re.exec(data)){
    alert(m[1])
}

在这里,只需一次前瞻就可以做到这一点:

 a = "this is [test] line i [want] text [inside] square [brackets]"
 words = a.match(/[^[\]]+(?=])/g)
但在一般情况下,基于
exec
replace
的循环会导致更简单的代码:

words = []
a.replace(/\[(.+?)\]/g, function($0, $1) { words.push($1) })

先生,你能解释一下for循环中发生了什么吗?我们能用underline.js的_each()函数来迭代吗?它不是完全重复的方括号,不是一个普通字符,它必须以不同的方式处理,然后其他字符才能简化先行正则表达式?/[^[]+(?=])/g@Jules:好建议,谢谢。