日期:2014-05-16  浏览次数:20302 次

正则表达式去HTML标签问题-被大于号绊住了
想从论坛取一段内容摘要放到其他页。因为只取一部分文字,所以把HTML标签全去掉。为了图省事,我用的正则是——(\ <)(.*?)(\> )
部分原文:
…… <img   onload= "javascript:if(this.width> screen.width-500)this.style.width=screen.width-500; "   src=……(省略)   > ……
结果:
screen.width-500)this.style.width=screen.width-500; "   src=……(省略)   > ……
竟然把大于号当成右尖括号来判断了。
想到一个笨办法就是把论坛的输出a> b换成b <a   。
因为刚学会正则的用法,所以还是不死心,问问大家有啥其他好办法没有。
旨在探讨,学习和提高。

(俺刚来不久,头一次发帖。不太了解分数怎么给,希望有热心的朋友说明一下或给个链接地址,多谢!)



------解决方案--------------------
这个不是很容易,要具体情况看。正常来讲,按照2.0的标准,这里的大于号是需要转意的,那样的话就不存在这些问题
------解决方案--------------------
innerText处理一下
------解决方案--------------------
看看大于号附近的单词有没有规律,如果有的的话用正则表达式的后向引用
?: 或?!试试
------解决方案--------------------
mark下
------解决方案--------------------
首先把转义替换成特殊字符。
然后在 <(?:[^> ]+|([ " '])[^\1]*\1)+> 全部kill掉。。
然后在按特殊字符把转义都替换回来。。。