如何删除多行C样式注释,例如:
/* comments
comments
comments
comments */
我可以使用其他问题中提供的几个代码来一行移除注释,例如/* comments */
。
s#/\*[\s\S]*?\*/##sg;
s#/\*(.*?)\*/##sg;
s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $2 ? $2 : ""#gse
所有上述三个正则表达式都无法处理多行注释。如何处理呢?
// something
这样的单行注释。然而,关于你提到的反斜杠,我不是很确定,抱歉,我是一个编程新手 ;) - double_espressoconst char c_start [] =“ / *”; const char c_end [] =“ * /”;
其中不包含任何注释。您甚至可以有非便携式代码,例如int c1 =' / *'; int c2 =' * /';
也不包含任何注释。彻底完成这项工作显然是非常困难的。但是,这种东西可能远远超出了OP需要处理的范围,他可以感谢自己的幸运星,因为他没有制作商业级别的注释删除器。 - Jonathan Leffler/*something*/
和单行//something
。 - double_espresso