正则表达式删除HTML标签
我正在使用以下常规表达式从字符串中删除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>
and <img>
标签的第一次出现。
回答:
使用正则表达式解析HTML充满陷阱。HTML不是一种常规语言,因此无法使用正则表达式进行100%正确的解析。这只是您将遇到的许多问题之一。最好的方法是使用HTML
/ XML解析器为您完成此操作。
这是我不久前写的博客文章的链接,其中包含有关此问题的更多详细信息。
- http://blogs.msdn.com/b/jaredpar/archive/2008/10/15/regular-expression-limitations.aspx
话虽如此,这是一种应解决此特定问题的解决方案。但这绝不是一个完美的解决方案。
var pattern = @"<(img|a)[^>]*>(?<content>[^<]*)<";var regex = new Regex(pattern);
var m = regex.Match(sSummary);
if ( m.Success ) {
sResult = m.Groups["content"].Value;
以上是 正则表达式删除HTML标签 的全部内容, 来源链接: utcz.com/qa/432273.html