Regex 如何将多行注释与正则表达式匹配

Regex 如何将多行注释与正则表达式匹配,regex,comments,match,multiline,Regex,Comments,Match,Multiline,我想用正则表达式匹配多行注释。注释类型为: /* This is a comment. */ 我尝试以下代码: \/\*(.*?)\*\/ { 'begin': '\\/\\*' 'end': '\\*\\/' 'name': 'comment.block.documention.mylanguage' }, 问题图像为。 谢谢。根据您使用的正则表达式引擎,匹配多行字符串时会应用不同的规则 假设您使用的是PCRE(在PHP中),此模式不匹配,因为


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

/*
    This is a comment.
*/
我尝试以下代码:

\/\*(.*?)\*\/
{
      'begin': '\\/\\*'
      'end': '\\*\\/'
      'name': 'comment.block.documention.mylanguage'
},
问题图像为。

谢谢。

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

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

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

您也可以选择并指定
/s
(单行)模式,但在这种情况下,也会捕获前导和尾随换行符。

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

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

\/\*\s?(.*)\s?\*\/
您也可以选择并指定
/s
(单行)模式,但在这种情况下,也将捕获前导和尾随换行符。

这应该可以找到所有注释:

\/\*\n((.*?)\n)+\*\/
这应该可以找到所有评论:

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

问题解决了
我使用此代码:

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

问题解决了
我使用此代码:

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

您使用的是什么工具或语言?我正在为Atom文本编辑器制作一个语法包。我不熟悉Atom正则表达式,但问题是您的正则表达式没有在多行模式下运行。如果你能想出如何使正则表达式多行,它应该可以工作。我不知道。
[\s\s]*?
而不是
*?
可能会对你有所帮助。你使用什么工具或语言?我正在为Atom文本编辑器制作语法包。我不熟悉Atom正则表达式,但问题是您的正则表达式没有在多行模式下运行。如果你能想出如何使正则表达式多行,它应该可以工作。我不知道。
[\s\s]*?
而不是
*?
可能会对你有所帮助。在链接中确实有效。但是在Atom中文本编辑器不起作用。在链接中起作用。但是在Atom中,文本编辑器不起作用。