Javascript 是否可以使用正则表达式';谁是捕获组?
我想知道是否可以使用捕获组剥离javascript JSDoc,我的不起作用 所以我想要这些部分(截图): 截图代码:Javascript 是否可以使用正则表达式';谁是捕获组?,javascript,regex,Javascript,Regex,我想知道是否可以使用捕获组剥离javascript JSDoc,我的不起作用 所以我想要这些部分(截图): 截图代码: /** */ 函数emptyMatch(){} /** *这很酷 *惊人的 */ /** *这很酷 * */ 函数coolMatch(){} /** *这是不应该匹配的。 */ 函数noMatch(){} 我想要的结果如下所示: [“这很酷\nAmazing”,“这很酷”]; 我写了一个正则表达式: const re=/\/\*{2}\n(?:(?:[]*\*(?:[](
/**
*/
函数emptyMatch(){}
/**
*这很酷
*惊人的
*/
/**
*这很酷
*
*/
函数coolMatch(){}
/**
*这是不应该匹配的。
*/
函数noMatch(){}
我想要的结果如下所示:
[“这很酷\nAmazing”,“这很酷”];
我写了一个正则表达式:
const re=/\/\*{2}\n(?:(?:[]*\*(?:[](.])*)\n)+[]*\*//g;
中的正则表达式如下所示:
现在,当我执行这个正则表达式时,它没有显示我想要的
//语法没有错,请小心语法突出显示。
常量str=`/**
*/
函数emptyMatch(){}
/**
*这很酷
*惊人的
*/
/**
*这很酷
*
*/
函数coolMatch(){}
/**
*这是不应该匹配的。
*/
函数noMatch(){}
`
常量re=/\/\*{2}\n(?:(?:[]*\*(?:[](.*)*))\n)+[]*\*\//g;
行政主管(str)
它只显示一段捕获的字符串
(对不起,我无法将此记录到console.log)
如何实现我的目标?您需要分别提取注释中的每一行,因为您事先不知道将有多少行。首先匹配每个注释部分,然后按换行符拆分:
const str=`/**
*/
函数emptyMatch(){}
/**
*这很酷
*惊人的
*/
/**
*这很酷
*
*/
函数coolMatch(){}
/**
*这是不应该匹配的。
*/
函数noMatch(){}`;
常量re=/^\/\*{2}\n((?:\*.\n)++?\*\//gm;
让我们比赛;
while(match=re.exec(str)){
常量行=匹配[1]
.split(“\n”)
.map(line=>line.slice(3));//从每一行中删除前导“*”
lines.pop();//最后一个元素是空字符串
控制台日志(行);
}
或,让rx=/\/\*{2}(\r?\n(?:[\t]*\*(?:[\t]+.*))\r?\n)+[\t]*)\*//g;设matches=[],m;while(m=rx.exec(str)){matches.push(m[1].replace(/^\s*\*\s*/gm',).trim();}