3

// 我有这个字符串

var a = "/**  \n" + 
        "  * foo bar  \n" + 
        "  * baz bob  \n" + 
        "  *  \n" + 
        "  * Yes, it is a string containing a docstring  \n" + 
        "  */  ";

// 有一些正则表达式的经验,我写了一个 JavaScript 正则表达式:

var r = /\/\*\*\s*(.*\s*)*\*\//g;

// 正如预期的那样,该正则表达式成功捕获,

// 但在第二次捕获中只有文档字符串的最后一行:

var match = r.exec(a.toString());  console.log(match);

// ["/**
//  * foo bar
//  * baz bob
//  * Yes, it is a string containing a docstring
//  */", 
//  "* Yes, it is a string containing a docstring"
// ]

// 为了捕获类似于 match[1] 的“字符串”中的所有行,我还缺少什么?

// 这个问题是它自己的小提琴。

4

1 回答 1

3

dotall标志,在大多数语言中是修饰符s,在 Javascript中不存在。

您可以通过在字符类中一起使用\s及其否定来解决此问题。\S[\S\s]

var r = /\/\*\*\s*([\S\s]*)\*\//g;
于 2013-10-24T19:43:50.593 回答