正则表达式需要删除C / C#评论

时间:2011-05-26 12:15:06

标签: c# regex

我需要一个C#正则表达式来删除/**/之间的所有内容,包括/**/。 因此,基本上删除给定文本中的所有代码注释。

3 个答案:

答案 0 :(得分:6)

应该是这样的:

var regex = new Regex("/\*((?!\*/).)*\*/", RegexOptions.Singleline);

regex.Replace(input, "");

答案 1 :(得分:2)

警惕可以嵌套评论。如果注释可以像SQL一样嵌套,那么基本的正则表达式将如下所示:

/\*.*?\*/

然后你需要循环,直到你没有剥离任何东西。

相比之下,如果评论以C中的第一个* / like结尾,那么你需要贪得无厌的前瞻:

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

答案 2 :(得分:0)

我还需要忽略带有

形式的行注释
// blablabla

所以,只是因为有人也需要这个,通过添加最后一部分 |(//.*)来修改正则表达式,所以完整的表格将是:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)