我需要一个C#正则表达式来删除
/*
和*/
之间的所有内容,包括/**/
。
因此,基本上是在给定文本中删除所有代码注释。var regex = new Regex("/\*((?!\*/).)*\*/", RegexOptions.Singleline);
regex.Replace(input, "");
请注意评论可以嵌套。如果评论可以像SQL一样嵌套,基本的正则表达式将如下所示:
/\*.*?\*/
接下来,您需要循环直到没有内容可剥离。
相比之下,如果注释以类似于C语言的第一个*/结束,则需要使用贪婪匹配和负向先行断言:
/\*((?!\*/).)*\*/
我也需要忽略形式为
的行注释// blablabla
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)
// 这里没有注释 /*
, 接着是WillBeRemoved(); /* 真正的注释 */
。好吧,这不太常见,但你可以非常有创意地搞砸它。 - Kobi