正则判断是否有html标签,正则表达式匹配所有HTML标签,除了和
如果您堅(jiān)持使用正則表達(dá)式,大多數(shù)情況下都可以使用這樣的方法:
# Remove all HTML except "p" tags
$html =~ s{/?)(?:[^pP]|[pP][^\s>/])[^>]*>}{}g;
說(shuō)明:
s{
< # opening angled bracket
(?>/?) # ratchet past optional /
(?:
[^pP] # non-p tag
| # ...or...
[pP][^\s>/] # longer tag that begins with p (e.g.,
))
[^>]* # everything until closing angled bracket
> # closing angled bracket
}{}gx; # replace with nothing, globally
但是真的,保存自己一些頭痛,并使用解析器。 CPAN有幾個(gè)適合的模塊。以下是使用功能非常強(qiáng)大的HTML::Parser CPAN發(fā)行版HTML::TokeParser模塊的示例:
use strict;
use HTML::TokeParser;
my $parser = HTML::TokeParser->new('/some/file.html')
or die "Could not open /some/file.html - $!";
while(my $t = $parser->get_token)
{
# Skip start or end tags that are not "p" tags
next if(($t->[0] eq 'S' || $t->[0] eq 'E') && lc $t->[1] ne 'p');
# Print everything else normally (see HTML::TokeParser docs for explanation)
if($t->[0] eq 'T')
{
print $t->[1];
}
else
{
print $t->[-1];
}
}
HTML::Parser以文件名,打開文件句柄或字符串的形式接受輸入。將上述代碼包裝在庫(kù)中,使目的地可配置(即不僅如上所述打印)并不難。結(jié)果將比使用正則表達(dá)式更可靠,可維護(hù),也可能更快(HTML :: Parser使用基于C的后端)。
總結(jié)
以上是生活随笔為你收集整理的正则判断是否有html标签,正则表达式匹配所有HTML标签,除了和的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: asp 转换html代码,asp下实现对
- 下一篇: 华为p40鸿蒙系统价格有好高,鸿蒙系统版