Javascript – 在方括号之间返回string

我只需要返回string中方括号内的文本。 我有以下正则expression式,但是这也返回方括号:

var matched = mystring.match("\\[.*]"); 

一个string将只包含一组方括号,例如:

 Some text with [some important info] 

我想匹配包含“一些重要的信息”,而不是我目前得到的“[一些重要的信息]”。

使用分组。 我已经添加了? 做出匹配的“不真实”,因为这可能是你想要的。

 var matches = mystring.match(/\[(.*?)\]/); if (matches) { var submatch = matches[1]; } 

由于JavaScript不支持捕获,你必须破解它。 考虑采用相反的方法。 而是捕捉括号内的内容,删除它们之外的内容。 由于只有一组括号,它应该工作得很好。 我通常使用这种技术来剥离前导空白和尾随空白。

 mystring.replace( /(^.*\[|\].*$)/g, '' ); 

你有没有尝试捕获parens:

 ("\\[(.*)]"); 

这应该返回括号内的模式作为返回数组中的捕获匹配

你不能。 Javascript不支持向后看。

您将不得不使用捕获组或删除括号。

顺便说一下,你可能不想在你的正则expression式中贪婪。 尝试这个:

 "\\[.*?]" 

或者更好,这个:

 "\\[[^\\]]*]"