Perl怎样过滤html标签

比方一串字符串

<div><b>123</b></div>


假设仅仅想拿到123怎么办呢?

用perl的正則表達式能够非常easy的做到。

$str =~  s/<([a-zA-Z]w*)(s+S+)*>(.+?)</1>/$3/sg;


这样的仅仅能过滤掉左右对称的标签,假设你的字符串里的html标签不正确称。或者是有缺陷,这样的方式就做不了了。

假设上边的看不懂。那看个简单的:

$retPromotionInfo=~s/<.*?

>//g;
$retPromotionInfo=~s/&lt;.*?

&gt;//g;


上边的问号代表懒惰匹配。假设不加问号,会把中间的内容也过滤掉。


第二行表示对转义过的标签也进行过滤,

&lt; 代表 <

&gt; 代表 >


好了,就到这里吧。

原文:http://blog.csdn.net/hongchangfirst/article/details/37693005

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


原文地址:https://www.cnblogs.com/lxjshuju/p/7039364.html