用空格替换注释的每个符号

Replace every symbol of comments by whitespace

我有一些 C# 代码文档。 需要用“空格”替换每个注释的每个符号。(需要对单行和多行注释都这样做)。

例如: 我有评论: //12345 它必须替换为 7 个空格。

多行注释同理。执行此操作后,我需要具有相同符号数的文档。


@RagtimeWilly,我想要这样的东西:

string testsDocumentTemp = testsDocument;

while (DocumentTemp.Contains("/*"))
{
    int CutFromPosition = DocumentTemp.IndexOf("/*", 0);
    int CutToPosition = DocumentTemp.IndexOf("*/", CutFromPosition) - CutFromPosition;

    string s = testsDocumentTemp.Substring(CutFromPosition, CutToPosition);

    var builder = new StringBuilder();
    builder.Append(' ', s.Length);
    var result = builder.ToString();
    
    DocumentTemp = DocumentTemp.Replace(s, result);
};

while (DocumentTemp.Contains("////"))
{
    int CutFromPosition = DocumentTemp.IndexOf("////", 0);
    int CutToPosition = DocumentTemp.IndexOf("\n", CutFromPosition) - CutFromPosition;

    string s = testsDocumentTemp.Substring(CutFromPosition, CutToPosition);

    var builder = new StringBuilder();
    builder.Append(' ', s.Length);
    var result = builder.ToString();
    
    DocumentTemp = DocumentTemp.Replace(s, result);
};

但更优化。 (没有尝试此代码,但我相信它一定可以工作)。我认为,这是解决任务的糟糕方法...

您为什么不想使用正则表达式?像这样的东西似乎非常适合解决问题:

public static string ReplaceComments(string input)
{
    return Regex.Replace(input, @"(/\*[\w\W]*\*/)|//(.*?)\r?\n",
        s => GenerateWhitespace(s.ToString()));
}

public static string GenerateWhitespace(string input)
{
    var builder = new StringBuilder();
    builder.Append(' ', input.Length);

    return builder.ToString();
}