如何删除字符串中的所有字符串以及匹配的字符串

时间:2017-06-05 22:11:10

标签: c# regex

如果已经有问题我会删除它,但找不到与我的问题相似的任何内容。我有一个字符串,让我们说

<blockquote> string here string here string here </blockquote>

(通常会有点复杂,但为了方便起见,这是有效的。我想删除<blockquote> </blockquote>中的所有内容,我使用此正则表达式做了相当成功:

new Regex("(\\<blockquote)(.*?)(\\</blockquote\\>)");
string Result = x.Replace(Text, "$1" + repl + "$3");

这让我大约90%的方式。我希望我的正则表达式不仅可以删除其中的内容,还可以删除块引用本身。

Here's一个测试环境,它具有我目前所拥有的。我有一个示例字符串,如下所示:

Testing: h<sub>2</sub>0 40<sup>th</sup>.<br /> <br /> <div> <blockquote class=\"twitter-tweet\" data-lang=\"en\"><p lang=\"en\" dir=\"ltr\">Breaking: Thad Matta is out as Ohio State men&#39;s basketball coach after 13 seasons. <a href=\"{link_ommitted}\">pic.twitter.com/XhFreY9j2S</a></p>&mdash; SportsCenter (@SportsCenter) <a href=\"https://twitter.com/SportsCenter/status/871793341435965441\">June 5, 2017</a></blockquote>

结果如下:

Testing: h<sub>2</sub>0 40<sup>th</sup>.<br /> <br /> <div> <blockquote</blockquote><br /> <br /> <blockquote</blockquote> </div>

就像我说的那样,让我大约90%的路程。现在我可以很容易地做Result = Result.Replace("<blockquote</blockquote>", string.Empty)而且我已经开始了。但我想知道是否有一种方法可以在我最初的Regex.Replace方法中执行此操作,如上所示。

1 个答案:

答案 0 :(得分:2)

您正在读取替换方法中的第1组和第3组。试试这个

string Result = x.Replace(Text, repl);