如何删除两个字符串之间的字符串,包括起始字符串和结束字符串?

时间:2015-11-06 10:50:45

标签: c# .net

示例字符串:

"< harshal bhamare > sfjkgdbgfbguifg < fbgfg >";

我想删除以#开头的总字符串"< harshal bhamare >" "<"">"结尾。

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式:

<.*?>(.*)<.*?>

它删除括号内的所有内容,包括括号本身(?使其不贪心,因此允许文本块内的<>),并捕获文本之间。您可以通过获取第一个捕获来解决这个问题,就像在这个C#代码中一样:

string output = Regex.Replace(input, @"<.*>(.*)<.*>", "$1");

答案 1 :(得分:0)

如果您不想使用正则表达式解决方案,您可以简单地遍历每个字符并观察开始/结束字符,省略其中的字符。

StringBuilder sb = new StringBuilder();
bool skip = false;
foreach (char c in "< harshal bhamare > sfjkgdbgfbguifg < fbgfg >")
{
    if (c.Equals('<')) skip = true;
    if (c.Equals('>')) { skip = false; continue; }

    if (!skip) sb.Append(c);

}

System.Console.WriteLine(sb.ToString());