如果您坚持使用正则表达式,大多数情况下都可以使用这样的方法:

# Remove all HTML except "p" tags

$html =~ s{/?)(?:[^pP]|[pP][^\s>/])[^>]*>}{}g;

说明:

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有几个适合的模块。以下是使用功能非常强大的HTML::Parser CPAN发行版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以文件名,打开文件句柄或字符串的形式接受输入。将上述代码包装在库中,使目的地可配置(即不仅如上所述打印)并不难。结果将比使用正则表达式更可靠,可维护,也可能更快(HTML :: Parser使用基于C的后端)。

正则判断是否有html标签,正则表达式匹配所有HTML标签,除了和相关推荐

  1. js正则匹配闭合标签_正则表达式匹配封闭html标签

    统计代码行数 , 只需一个正则就 搞定.嵌套 Html 标签的匹配是正则表达式应用中一个比较难的话题,因为它涉 及到的正则语法比较多,也比较难.因此也就更有研究的价值. 思路 任何复杂的正则表达式都是 ...

  2. java 字符正则匹配算法_算法之字符串——正则表达式匹配

    难度 困难 请实现一个函数用来匹配包含'. '和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次).在本题中,匹配是指字符串的所有字符匹配整个模式 ...

  3. php正则判断是否为QQ号,正则表达式对qq号码校验

    正则表达式对qq号码校验 废话不多说了,直接给大家贴代码了,具体代码如下所示: package 正则表达式; /*对QQ号码进行校验 要求5~15位,不能以0开头,只能是数字*/ import jav ...

  4. java正则判断日期格式_Java中用正则表达式判断日期格式是否正确

    1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...

  5. php正则判断是否包特殊符号,正则表达式(RegExp)判断文本框中是否包含特殊符号...

    前言 有时,我们希望判断文本框中用户输入的字符是否含有特殊符号(*/#$@),就像用户注册时密码框的填写. demo 利用 RegExp 对象,能很优雅的实现以上需求: // even(文本框内容) ...

  6. php正则判断qq,JavaScript中的正则表达式使用及验证qq号码的正则

    废话不多说了,直接给大家贴正则表达式代码了. function myValid() { var errorMsg = ""; var res = true; //拿到要验证的值. ...

  7. 正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)

    原标题:正则匹配闭合HTML标签(支持嵌套) 任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则 ...

  8. python-利用正则表达式匹配字符串

    python正则表达式相关的模块是re 该模块有几个常用的方法 re.compile() 生成一个正则对象 re.match().group() 根据正则表达式匹配字符串,如果不是从字符串首位匹配的, ...

  9. python正则判断纯数字_Python 正则表达式匹配数字及字符串中的纯数字,

    Python 正则表达式匹配数字及字符串中的纯数字, Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[ ...

最新文章

  1. 图灵机器人api接入c语言,apikey创建接入图灵机器人
  2. python统计文章单词次数
  3. SQL Server-聚焦深入理解动态SQL查询(三十二)
  4. 网络工程师学习参考资料路由器配置案例分析
  5. Exception in thread “main“ java.lang.IllegalStateException: Duplicate key xxx
  6. MIT新研究:算法比硬件更有用
  7. 计算机二级数据模型三要素,2017年计算机二级公共基础知识重点讲解:数据模型...
  8. 吴恩达机器学习学习笔记第六章:机器学习中的线性代数操作python3版(含numpy、panda库的使用)
  9. 日常生活中女性的弱点是什么?
  10. oracle数据库考试题带答案解析,oracle数据库期末考试试题及答案剖析
  11. R语言入门之R与RStudio的详细安装过程(图文很详细哦!!!)
  12. 检测压缩包并处理的Linux脚本(解压、批量修改文件名、导入)分析
  13. 【EasyUI】如何根据条件控制可编辑表格某字段是否可以编辑;
  14. <<视觉问答>>2022:MuKEA: Multimodal Knowledge Extraction and Accumulation for Knowledge-based VQA
  15. MySQL调优(二)——索引最佳实践
  16. [c语言]malloc动态开辟内存空间
  17. android 微信架构,微信App支付技术架构全解析
  18. 最强大的Mac软件卸载清理工具 App Cleaner Uninstaller Pro 7.8 Mac版(内附安装包链接)
  19. 对话三星张代君:Bixby到底与Siri有什么不同?
  20. cj20n sap 报错未知列的名称_sapps操作手册

热门文章

  1. SAP财务中国本土好内容
  2. smartforms不输出0
  3. SAP FI/CO模块调研问卷
  4. 一次性供应商不能用特别总账标准程序修改
  5. 实收资本、资本公积、盈余公积的含义和区别
  6. 如何隐藏你写的ABAP代码
  7. SMARTFORM的使用BSIS会计凭证中的字段DMBTR(本币金额)报错
  8. FUNCTION MODULE 'LDB_PROCESS' 实例讲解
  9. 快拿走这份千字秘笈:3招量化促销活动结果,新零售营销得这么做
  10. 上市公司总市值TOP10出炉,你所在县区看的到未来吗?