使用Regex匹配多行C++样式注释

Dr.*_*eon 0 c# c++ regex comments

好的,我知道这是一个反复出现的问题,但我似乎无法找到一个完全基于正则表达式的单一工作解决方案.

所以,这就是我提出的(实际上是基于ECMAC#尖锐语法规范中的多行注释的"文字"描述).

\/\*(([^\*])+)|([\*]+(?!\/))[\*]+\/
Run Code Online (Sandbox Code Playgroud)

但是,你可以看到它不起作用......

演示:

http://regexr.com?38gom

有任何想法吗?如果不做各种各样的黑客攻击,这是否可行?(好吧,我的意思是除了正则表达式本身......哈哈)


PS如果它具有任何信息价值,我目前正在使用Lex/Bison/C/D开发词法分析器/解析器/解释器,显然多行注释是一个需要考虑的事情......

Sab*_*san 6

以下是regexr.com提供的样本的正则表达式

\/\*+((([^\*])+)|([\*]+(?!\/)))[*]+\/
Run Code Online (Sandbox Code Playgroud)

要么:

\/\*.*?\*\/
Run Code Online (Sandbox Code Playgroud)

  • 使用这个`\ /\*.*?\*\/`但如果注释中有`*/`则不起作用. (2认同)