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式中贪婪。 尝试这个:
"\\[.*?]"
或者更好,这个:
"\\[[^\\]]*]"