正则表达式只匹配多行注释

时间:2016-10-04 10:05:56

标签: regex

我试图想出一个匹配String中所有多行注释的正则表达式。问题是,我不允许以相同的格式匹配单行注释。

匹配

/* This 
is a 
multiline 
comment 
*/

不匹配:

/* This is a single line comment */

1 个答案:

答案 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;
&#13;
&#13;