如何从包含标签的字符串块中删除[开始]和[结束]之间的文本部分?
是否有更简单的方法,而不是使用IndexOf
和Substring
等?
更新:我正在尝试使用
var output = Regex.Replace("[Start]SomeText[End]", @"(?<=[Start]).*(?=[End])", "");
但这种模式并不常用。它需要删除[开始]和[结束]
之间的所有内容输入文字: [开始] Hello World [结束]
输出文字: [开始] [结束]
答案 0 :(得分:1)
你可以试试这个:
Regex rgx = new Regex(@"(?<=\[Start])(?s).+?(?=\[End])");
string output = rgx.Replace(input, "");
或者这会更快:
Regex rgx = new Regex(@"(?<=\[Start])(?>[^[]+|\[(?!End]))+(?=\[End])");
string output = rgx.Replace(input, "");
答案 1 :(得分:0)
[
和]
是正则表达式中的特殊字符。
var output =
Regex.Replace("[Start]SomeText[End]", @"(?<=\[Start\]).*(?=\[End\])", "");