首页 > 解决方案 > C#删除一个字符之后但另一个字符之前的所有内容

问题描述

我正在处理一段动态数据,我需要删除一些但不是字符串的最后部分。

var x = "<abc><static string data> Data inside here is dynamic </abc>"

我希望能够删除字符串数据之后的所有内容,但保留</abc>.

我可以通过这样做删除所有内容;

x = x.Substring(0, x.IndexOf("<static string data>") + 1);

但这删除了</abc>部分,我不想手动添加</abc>回来,因为它破坏了我试图实现的目标。

标签: c#string

解决方案


这可以更优雅地完成,但为了演示:

    var x = "<abc><static string data> Data inside here is dynamic </abc>";
    var start = x.IndexOf("<static string data>") + ("<static string data>").Length;
    var end = x.IndexOf("</abc>");

    var newStr = x.Substring(0, start) + x.Substring(end);
    Console.Writeline(newStr);

输出:

<abc><static string data></abc>

推荐阅读