我需要一个C#正则表达式来删除/*
和*/
之间的所有内容,包括/**/
。
因此,基本上删除给定文本中的所有代码注释。
答案 0 :(得分:6)
应该是这样的:
var regex = new Regex("/\*((?!\*/).)*\*/", RegexOptions.Singleline);
regex.Replace(input, "");
答案 1 :(得分:2)
警惕可以嵌套评论。如果注释可以像SQL一样嵌套,那么基本的正则表达式将如下所示:
/\*.*?\*/
然后你需要循环,直到你没有剥离任何东西。
相比之下,如果评论以C中的第一个* / like结尾,那么你需要贪得无厌的前瞻:
/\*((?!\*/).)*\*/
答案 2 :(得分:0)
我还需要忽略带有
形式的行注释// blablabla
所以,只是因为有人也需要这个,通过添加最后一部分 |(//.*)来修改正则表达式,所以完整的表格将是:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)