Javascript提取评论RegExp

时间:2012-04-11 01:31:02

标签: javascript regex comments extract

我有一个类似的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
 */

规则只是注释块以/**开头,以*/结尾。在评论中,所有字符都是允许的。

有人能帮帮我吗?谢谢!

4 个答案:

答案 0 :(得分:6)

试试这个:(它会有很多类型的评论) - 现场演示:http://regexr.com?30jrh

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)

看看:

enter image description here

答案 1 :(得分:2)

这是一个正则表达式:

/\/\*\*(.|\n)+?\*\//

And here's a demo.

答案 2 :(得分:0)

其他答案对我来说并不适用。以下是在Node.js中解析Javascript的工作原理。

/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(\/\/.*)/g

答案 3 :(得分:0)

/(\/\*).*?(\*\/)|(\/\/).*?(\n|\$)/s

匹配打开和关闭多行标记及其间的任何内容

(\/\*).*?(\*\/)

或匹配由新行或行尾

终止的单行开放注释
(\/\/).*?(\n|\$)