//我有字符串:
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]类似的所有行,我还缺少什么?
//这个问题是它自己的小提琴。
答案 0 :(得分:3)
dotall 标记,在大多数语言中都是s
修饰符,在Javascript中不存在。
您可以通过在字符类中一起使用\s
及其否定\S
来解决此问题。 [\S\s]
var r = /\/\*\*\s*([\S\s]*)\*\//g;