选择文件中的文本并使用C#

时间:2016-07-15 08:10:42

标签: c#

我想替换文件中的一段文字 该部分应以// BEGIN开头:并以// END:

结束

替换只是一条黑线,

这是我使用的代码:

text = Regex.Replace(text, @"//(.*?)\r?\n", me =>
{
    bool x = false;
    if (me.Value.StartsWith("//BEGIN:"))
    {
        x = true;
        return me.Value.StartsWith("//BEGIN:") ? Environment.NewLine : "";
    }
    if (x == true)
    {
        return Environment.NewLine;
    }
    if (me.Value.StartsWith("//END:"))
    {
        x = false;
        return me.Value.StartsWith("//END:") ? Environment.NewLine : "";
    }
    return me.Value;
}, RegexOptions.Singleline);

但它不像我想的那样工作。

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

string result = (new Regex("\/\/BEGIN:(.|\n)*\/\/END:"))
    .Replace(text, Environment.NewLine);

答案 1 :(得分:0)

如果没有正则表达式和模式匹配的开销,您可以尝试这个简单的解决方案:

int start = text.IndexOf("//BEGIN");
int end = text.IndexOf("//END");

if(start >= 0 && end >=0 && end > start)
    text = text.Substring(0, start) + Environment.NewLine + text.Substring(end + "//END".Length);