我试图想出一个匹配String中所有多行注释的正则表达式。问题是,我不允许以相同的格式匹配单行注释。
匹配
/* This
is a
multiline
comment
*/
不匹配:
/* This is a single line comment */
答案 0 :(得分:1)
类似的东西(根据您使用的语言进行额外修正):
\/\*((?!\*\/)[^\r\n])*[\r\n]((?!\*\/)[\s\S\r\n])*\*\/
测试:
console.log(document.querySelector('textarea').value.match(/\/\*((?!\*\/)[^\r\n])*[\r\n]((?!\*\/)[\s\S\r\n])*\*\//g).join("\n\n"))

textarea { width: 100%; }

<textarea>Match: /* This
is a
multiline
comment
*/
No Match: /* This is a single line comment */
Match: /*
This is a multiline ** comment */
No Match: /* This is a single line comment */
Match: /* This is a multiline ** comment
*/</textarea>
&#13;