我只需要返回字符串中方括号内包含的文本。我有以下的正则表达式,但这也返回方括号:Javascript - 在方括号之间返回字符串
var matched = mystring.match("\\[.*]");
一个字符串,将只包含一个组方括号,例如:
Some text with [some important info]
我想匹配包含“一些重要信息',而不是我目前得到的'[一些重要信息']。
我只需要返回字符串中方括号内包含的文本。我有以下的正则表达式,但这也返回方括号:Javascript - 在方括号之间返回字符串
var matched = mystring.match("\\[.*]");
一个字符串,将只包含一个组方括号,例如:
Some text with [some important info]
我想匹配包含“一些重要信息',而不是我目前得到的'[一些重要信息']。
使用分组。我已经添加了一个?
来使匹配的“不真实”,因为这可能是你想要的。
你尝试捕获的括号:
("\\[(.*)]");
这应该括号内为捕捉比赛返回数组
你不能在返回模式。 Javascript不支持lookbehinds。
您必须使用捕获组或删除括号。
顺便说一下,你可能不想在你的正则表达式中使用贪婪.*
。试试这个:
"\\[.*?]"
或者更好的做法是:
"\\[[^\\]]*]"
由于javascript不支持捕获,因此您必须对其进行破解。考虑采取相反方法的这种替代方案。而是捕捉括号内的内容,删除它们之外的内容。既然只有一组括号,它应该可以正常工作。我通常使用这种技术来剥离前导空白和尾随空白。
mystring.replace(/(^.*\[|\].*$)/g, '');
如果在它后面有一个新行,最后加上)。 – 2017-07-19 11:23:55