如何从字符串中删除多个子字符串?
问题描述:
我有一个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.com
和https://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[^>]+>", "");
答
<((?:http|https):\/\/(?:email\.fielders\.com|running\.fielders\.com)(?:(?![<>]).)*)>
尝试this.See演示。
这是智能!!!!!! – vks 2014-09-22 13:49:24