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;

// その正規表現は、期待どおり、

// ただし、2 番目のキャプチャでは docstring の最後の行のみ:

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フラグは、Javascript には存在しません。s

文字クラスで\sとその否定を一緒に使用することで、これを回避できます。\S[\S\s]

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