我只需要返回字符串中方括號內包含的文本。我有以下的正則表達式,但這也返回方括號: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