我正在编写一个例程来从一些C#代码中删除块或行注释.我查看了网站上的其他示例,但没有找到我正在寻找的确切答案.
我可以使用这个正则表达式与RegexOptions.Singleline完全匹配块注释(/*comment*/):
(/\*[\w\W]*\*/)
我可以使用RegexOptions.Multiline的正则表达式完整地匹配行注释(//注释):
(//((?!\*/).)*)(?!\*/)[^\r\n]
注意:我正在使用[^\r\n]而不是$因为$包括\r在比赛中.
然而,这并不十分工作,我希望它的方式.
这是我正在匹配的测试代码:
// remove whole line comments
bool broken = false; // remove partial line comments
if (broken == true)
{
return "BROKEN";
}
/* remove block comments
else
{
return "FIXED";
} // do not remove nested comments */ bool working = !broken;
return "NO COMMENT";
Run Code Online (Sandbox Code Playgroud)
块表达式匹配
/* remove block comments
else
{
return "FIXED";
} // do not …Run Code Online (Sandbox Code Playgroud)