我想编写一个函数,它接受一个字符串并返回一个数组,其中包含其中所有 block 注释的内容。例如:
var text = 'This is not a comment\n/*this is a comment*/\nNot a comment/*Another comment*/';
var comments = getComments(text);
“评论”将是一个包含以下值的数组:
['this is a comment', 'Another comment']
我尝试使用此代码:
function getComments(text) {
var comments,
comment,
regex;
comments = [];
regex = /\/\*([^\/\*]*)\*\//g;
comment = regex.exec(text);
while(comment !== null) {
skewer.log(comment);
comments.push(comment[1]);
comment = regex.exec(text);
}
return comments;
}
问题是,如果注释中有 * 或 /,则不匹配
最佳答案
我不确定 JavaScript 部分,但这个正则表达式应该与您的模式匹配:\/\*.*?\*\/
关于javascript - 如何使用正则表达式从字符串中提取 block 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27113509/