用空格替换每个注释符号

时间:2015-03-08 22:43:02

标签: c# replace comments whitespace

我有一些C#代码文档。 需要用“空格”替换每个注释的每个符号。(需要使用单行和多行注释来执行此操作)。

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

与多行评论相同。执行此操作后,我需要具有相同符号计数的文档。

2 个答案:

答案 0 :(得分:0)

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

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();
}

答案 1 :(得分:0)

@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);
};

但更优化。 (没有尝试过此代码,但我相信它必须有效)。我相信,这是解决任务的坏方法......