繁体   English   中英

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

[英]How to remove string between two string including both start string as well end string?

示例字符串:

"< harshal bhamare > sfjkgdbgfbguifg < fbgfg >";

我想删除总字符串"< harshal bhamare >" ,该字符串以"<"开始,以">"结尾。

您可以为此使用正则表达式:

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

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

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

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

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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM