C# 使用正则表达式c删除文本部分#

C# 使用正则表达式c删除文本部分#,c#,regex,C#,Regex,如何从包含标记的字符串块中删除[Start]和[End]之间的一段文本 有没有比使用IndexOf和Substring等更简单的方法 更新:我正在尝试使用 var output = Regex.Replace("[Start]SomeText[End]", @"(?<=[Start]).*(?=[End])", ""); var output=Regex.Replace(“[Start]SomeText[End]”,@“(?[和]是Regex中的特殊字符 var output =

如何从包含标记的字符串块中删除[Start]和[End]之间的一段文本

有没有比使用
IndexOf
Substring
等更简单的方法

更新:我正在尝试使用

var output = Regex.Replace("[Start]SomeText[End]", @"(?<=[Start]).*(?=[End])", "");

var output=Regex.Replace(“[Start]SomeText[End]”,@“(?
[
]
是Regex中的特殊字符

var output =
   Regex.Replace("[Start]SomeText[End]", @"(?<=\[Start\]).*(?=\[End\])", ""); 
var输出=
Regex.Replace(“[Start]SomeText[End]”,@”(?您可以尝试以下方法:

Regex rgx = new Regex(@"(?<=\[Start])(?s).+?(?=\[End])");
string output = rgx.Replace(input, "");

Regex rgx=new Regex(@)(?需要解释一下吗?你能举一个例子说明它在哪些方面没有达到你预期的效果(以及你期望的结果是什么)?更新了,我以为你想“删除一部分文本(…)包括标记“为什么第二个更快?”@友好:因为第一个使用惰性量词,并且必须检查每个字符后面是否有
[End]
。第二个必须检查后面是否有
End]
,仅当遇到的字符是
[
Regex rgx = new Regex(@"(?<=\[Start])(?>[^[]+|\[(?!End]))+(?=\[End])");
string output = rgx.Replace(input, "");