javascript - 如何使用正则表达式从字符串中提取 block 注释?

标签 javascript regex string comments

我想编写一个函数,它接受一个字符串并返回一个数组,其中包含其中所有 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/

相关文章:

javascript - Highcharts 边框

javascript - 在 Canvas 中定位模态对话框

java - 为什么 string.charAt(x) 比 string[x] 慢很多

c# - 从公式字符串中解析出 Excel 函数

c++ - 替换字符串中的空格

c++ - 实现子字符串 C++

javascript - 在 puppeteer 中滚动到 div 的底部不起作用

javascript - 在 d3js 中将文本附加到动画条形图

c# - 匹配方法内容的正则表达式

php - 如何获取字符串的最后一段?