2

我有一个这样的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
 */

我的程序有一个循环来逐个提取匹配的块。所以我想要一个正则表达式来提取

第一个循环

/**
 * My Comment Line1
 * My Comment Line2
 */

第二循环

/**
 * My Comment Line3
 * My Comment Line4
 */

规则很简单,注释块以 . 开头/**和结尾*/。在评论中,允许使用所有字符。

有人可以帮我吗?谢谢!

4

4 回答 4

6

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

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

看一看 :

在此处输入图像描述

于 2012-04-11T01:33:36.943 回答
2

这是一个正则表达式:

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

这是一个演示。

于 2012-04-11T01:33:27.393 回答
0

其他答案对我来说不太管用。这是在 Node.js 中解析 Javascript 的方法。

/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(\/\/.*)/g
于 2013-12-20T19:46:27.373 回答
0
/(\/\*).*?(\*\/)|(\/\/).*?(\n|\$)/s

匹配开始和结束多行标签以及介于两者之间的任何内容

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

或匹配以新行或行尾终止的单行打开注释

(\/\/).*?(\n|\$)
于 2015-04-20T23:27:27.830 回答