1

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

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

更新:我正在尝试使用

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

但这种模式并不完全奏效。它需要删除 [Start] 和 [End] 之间的所有内容

输入文本:[开始] Hello World [结束]

输出文本:[开始][结束]

4

2 回答 2

2

你可以试试这个:

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

或者这会更快:

Regex rgx = new Regex(@"(?<=\[Start])(?>[^[]+|\[(?!End]))+(?=\[End])");
string output = rgx.Replace(input, "");
于 2013-11-13T14:28:12.197 回答
0

[并且]是正则表达式中的特殊字符。

var output =
   Regex.Replace("[Start]SomeText[End]", @"(?<=\[Start\]).*(?=\[End\])", ""); 
于 2013-11-13T14:00:31.517 回答