如何使用正则表达式匹配多行注释

时间:2017-08-01 05:30:57

标签: regex comments match multiline


我想用正则表达式匹配多行注释。评论类型为:

/*
    This is a comment.
*/

我试试这段代码:

\/\*(.*?)\*\/

问题图片为here 感谢。

4 个答案:

答案 0 :(得分:0)

根据您使用的正则表达式引擎,在匹配多个行字符串时会应用不同的规则。

假设您正在使用PCRE(在PHP中),此模式不匹配,因为默认情况下,PCRE中的.与换行符不匹配。使用this pattern来匹配换行符:

\/\*\s?(.*)\s?\*\/

您还可以use your original pattern并指定/s(单行)模式,但在这种情况下,也会捕获前导和后续换行符。

答案 1 :(得分:0)

regex应该找到所有评论:

\/\*\n((.*?)\n)+\*\/

答案 2 :(得分:0)

问题解决了!
我使用这段代码:

{
      'begin': '\\/\\*'
      'end': '\\*\\/'
      'name': 'comment.block.documention.mylanguage'
},

答案 3 :(得分:0)

此正则表达式匹配所有多行注释,例如多行上的 /* ... */,即使其中包含 */

\/\*(([^\*]|\*(?!\/))*)\*\/