我正在努力捕获和捕获Javascript中的群组。
我有以下字符串
var string = "#Blah blah blah\n#ENV:This is env note 1\n#MISC:this is a misc note\n#ENV:this is env note 2\n\n";
我想捕获以#ENV开头并以新行结尾的每个文本,而不捕获'#ENV:'标记本身。 (即我想要返回[“这是env note 1”,“这是env note 2”]
我尝试了以下内容:
var capture = string.match(/(?:#ENV)([^\n]*)/gi);
// Returns: ["#Blah blah blah", "#ENV:This is env note 1", "#MISC:this is a misc note", "#ENV:this is env note 2"]
var capture2 = string.match(/(?:(#ENV))([^\n]*)/gi);
//Returns ["#ENV:This is env note 1", "#ENV:this is env note 2"]
非常感谢任何建议。
由于
利奥
答案 0 :(得分:0)
两个正则表达式具有相同的结果,您必须从结果
中删除#ENV:
答案 1 :(得分:0)
找到解决方案。
问题来自match
方法。
以下代码适用于
var regex = /#ENV:(.*?)\n/gi;
var match;
var result=[];
while(match = regex.exec(string)) {result.push(match[1]);}