【发布时间】:2011-04-16 23:34:41
【问题描述】:
我正在使用以下正则表达式从字符串中删除 html 标记。它可以工作,除非我留下结束标签。如果我尝试删除:<a href="blah">blah</a>,它会留下<a/>。
我根本不知道正则表达式的语法,并且摸不着头脑。有RegEx知识的人可以给我一个可行的模式吗?
这是我的代码:
string sPattern = @"<\/?!?(img|a)[^>]*>";
Regex rgx = new Regex(sPattern);
Match m = rgx.Match(sSummary);
string sResult = "";
if (m.Success)
sResult = rgx.Replace(sSummary, "", 1);
我希望删除第一次出现的 <a> 和 <img> 标签。
【问题讨论】:
-
字符串前后的样本会有所帮助
-
“我正在使用 ... 正则表达式来删除 html 标签”这是你的问题。请改用 HTML 解析器。
-
RegEx match open tags except XHTML self-contained tags 的可能副本——尽管有标题,这完全是一个骗局。承诺。
-
由于其他人看不到可能的用例,这是我的... a) 在代码沙箱 (Salesforce) 中工作,即使不是不可能,也很难包含和维护一个 3rd-party 库 b) 仅尝试从电子邮件正文中删除标签以获得更清晰的电子邮件到案例描述(即 - 不涉及安全问题) c) stripHtmlTags() 方法没有做足够的工作来删除额外的标签