Javascript捕获组

时间:2016-07-13 01:07:31

标签: javascript regex

我正在努力捕获和捕获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"]

非常感谢任何建议。

由于

利奥

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]);}