我有一个类似的Javascript文件
/**
* My Comment Line1
* My Comment Line2
*/
var a = 123;
/**
* My Comment Line3
* My Comment Line4
*/
var b = 456;
我使用node.js来读取文件,并希望在此文件中提取注释。
我使用这个正则表达式
/\/\*\*((?:\r|\n|.)*)\*\//
然而,这提取
/**
* My Comment Line1
* My Comment Line2
*/
var a = 123;
/**
* My Comment Line3
* My Comment Line4
*/
我的程序有一个循环来逐个提取匹配的块。所以我想要一个RegExp来提取
第一次循环
/**
* My Comment Line1
* My Comment Line2
*/
第二次循环
/**
* My Comment Line3
* My Comment Line4
*/
规则只是注释块以/**
开头,以*/
结尾。在评论中,所有字符都是允许的。
有人能帮帮我吗?谢谢!
答案 0 :(得分:6)
试试这个:(它会有很多类型的评论) - 现场演示:http://regexr.com?30jrh
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)
看看:
答案 1 :(得分:2)
答案 2 :(得分:0)
其他答案对我来说并不适用。以下是在Node.js中解析Javascript的工作原理。
/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(\/\/.*)/g
答案 3 :(得分:0)
/(\/\*).*?(\*\/)|(\/\/).*?(\n|\$)/s
匹配打开和关闭多行标记及其间的任何内容
(\/\*).*?(\*\/)
或匹配由新行或行尾
终止的单行开放注释(\/\/).*?(\n|\$)