我想替换文件中的一段文字 该部分应以// 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);
但它不像我想的那样工作。
答案 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);