RegEx strip html标签问题

时间:2010-04-28 11:37:20

标签: html regex

我尝试使用regex替换模式“< [^>] *>”来删除html标记从单词生成的HTML看起来像这样:

< html xmlns:v =“urn:schemas-microsoft-com:vml”xmlns:o =“urn:schemas-microsoft-com:office:office”xmlns:w =“urn:schemas-microsoft-com :office:单词“xmlns:st1 =”urn:schemas-microsoft-com:office:smarttags“xmlns =”http://www.w3.org/TR/REC-html40">

< HEAD> < meta http-equiv = Content-Type content =“text / html; charset = iso-8859-2”> < meta name = Generator content =“Microsoft Word 11(过滤介质)”> <! - [if!mso]> <风格>

v:* {behavior:url(#default#VML);}

o:* {behavior:url(#default#VML);}

w:* {behavior:url(#default#VML);}

.shape {behavior:url(#default#VML);}

< /风格> 百分比抑制率ENDIF] - GT;<○:SmartTagType  namespaceuri =“urn:schemas-microsoft-com:office:smarttags”name =“place”  downloadurl =“http://www.5iantlavalamp.com/"/> <! - [if!mso]> <风格>

st1:* {behavior:url(#default#ieooui)}

< /风格> 百分比抑制率ENDIF] - GT!; <风格> <! -  / *字体定义 /  @字体面     {字体-family:宋体;     panose-1:2 11 6 4 3 5 4 4 2 4;}  / 样式定义* /  p.MsoNormal,li.MsoNormal,div.MsoNormal     {余量:0in;     边距:.0001pt;     字体大小:12.0pt;     font-family:“Times New Roman”;} a:link,span.MsoHyperlink     {颜色:蓝;     文字装饰:下划线;} a:访问过,span.MsoHyperlinkFollowed     {颜色:紫色;     文字装饰:下划线;} span.EmailStyle17     {MSO的风格类型:个人;     FONT-FAMILY:宋体;     颜色:windowtext;} span.EmailStyle18     {MSO的风格类型:个人回复;     FONT-FAMILY:宋体;     颜色:海军;} @page Section1     {size:8.5in 11.0in;     保证金:1.0in 1.25in 1.0in 1.25in;} div.Section1     {页:SECTION1;} - > < /风格>

< /头>

除了上面的粗体线外,一切正常,任何人都有想法如何匹配它们?

谢谢,

的Aleksandar

3 个答案:

答案 0 :(得分:3)

您的正则表达式没有考虑到评论可以包含未终止评论的>个字符。试试这个正则表达式:

<!--.*?-->|<[^>]*>

您必须启用该选项才能使.匹配换行符。如何做到这一点取决于您正在使用此正则表达式的应用程序或编程语言。例如。在Perl中,您将使用/s标志。在.NET中,您设置RegexOptions.SingleLine

答案 1 :(得分:0)

人们通常建议在处理HTML时使用解析器而不是正则表达式。

如果您 使用正则表达式:),您可以使用 -

<style>.*?</style>

答案 2 :(得分:-1)