如何从字符串中删除多个子字符串?

如何从字符串中删除多个子字符串?

问题描述:

我有一个string,看起来像这样:如何从字符串中删除多个子字符串?

string body = "<p>Dear Usr\r<br /> \r<br />See the following-\r<br /> \r<br />JN: 19\r<br />Site: \r<br />Description: \r<br />Work Order: \r<br /> \r<br />A listing of the works completed.\r<br />Thank you .\r<br />\r<br />\r<br />\r<br /> <https://running.fielders.com/OpenEmail/ChipCo042336/[email protected]/invs-693-285> <http://email.fielders.com/wf/open?upn=ADusIqwpYMLBRw2zAWXSKaHGA8vIY6xblvtU1D07Dfl99tcMOndfzsfNIZAug7FWHwvu6euZRgdGMOicT1XrX-2BWhviOs0Ze2NWM-2FHUPwrZ5HDwgQqeiA-2BiBSIR6BsFs4pFEbmpYxQgDSEaDAZDjUJG3pPNWBCOAMhMX-2BtJ-2Baza0d-2FeipGGk1nzAI2FMUHPpU69cAr1GbPxXed-2FuQxAHEGg-3D-3D></p>" 

现在,我希望能够在string和“<>”标签周围的网址结束卸下两个网址

第一招:

<https://running.fielders.com/OpenEmail/ChipCo042336/[email protected]/invs-693-285> 

第二个:

<http://email.fielders.com/wf/open?upn=ADusIqwpYMLBRw2zAWXSKaHGA8vIY6xblvtU1D07Dfl99tcMOndfzsfNIZAug7FWHwvu6euZRgdGMOicT1XrX-2BWhviOs0Ze2NWM-2FHUPwrZ5HDwgQqeiA-2BiBSIR6BsFs4pFEbmpYxQgDSEaDAZDjUJG3pPNWBCOAMhMX-2BtJ-2Baza0d-2FeipGGk1nzAI2FMUHPpU69cAr1GbPxXed-2FuQxAHEGg-3D-3D> 

string的内容可以从底座分开改变,因此可以在URL网址,这是http://email.fielders.comhttps://running.fielders.com我知道我需要寻找那些基本网址,除去<然后删除直到我打到下一个>,但我无法完全理解它。

我已经尝试了好几个小时玩这个周围:

body = Regex.Replace(body, @"\s*?(?:\<http://email.fielders.com*?\>|\<https://running.fielders.com/OpenEmail/*?\>)", String.Empty); 

,但没有运气。

试试这个:

var newString = Regex.Replace(myString, @"(<http://email\.fielders\.com[^>]+>|<https://running\.fielders\.com[^>]+>)", ""); 

两个网址,直到>被发现的基地和所有字符匹配:

<http://email\.fielders\.com[^>]+> 

您可以使用下面的正则表达式。

Regex.Replace(body, @"<https?://(?:email|running)\.fielders\.com[^>]+>", ""); 

Ideone Demo

+0

这是智能!!!!!! – vks 2014-09-22 13:49:24

<((?:http|https):\/\/(?:email\.fielders\.com|running\.fielders\.com)(?:(?![<>]).)*)> 

尝试this.See演示。

http://regex101.com/r/kM7rT8/7