3.2 HTML处理实例一

下面一个任务是分析HTML页面内FONT标记的所有属性。HTML页面内典型的FONT标记如下所示

程序将按照如下形式,输出每一个FONT标记的属性

在这种情况下,我建议你使用两个正则表达式。第一个如图十一所示,它从字体标记提取出“"face="Arial, Serif" size="+2" color="red"”。

图十一:匹配FONT标记的所有属性

第二个正则表达式如图十二所示,它把各个属性分割成名字-值对。

图十二:匹配单个属性,并把它分割成名字-值对

分割结果为

现在我们来看看完成这个任务的Java代码。首先创建两个正则表达式字符串,用Perl5Compiler把它们编译成Pattern对象。编译正则表达式的时候,指定Perl5Compiler.CASE_INSENSITIVE_MASK选项,使得匹配操作不区分大小写。|||

接下来,创建一个执行匹配操作的Perl5Matcher对象。

假设有一个String类型的变量html,它代表了HTML文件中的一行内容。如果html字符串包含FONT标记,匹配器将返回true.此时,你可以用匹配器对象返回的MatchResult对象获得第一个组,它包含了FONT的所有属性

接下来创建一个PatternMatcherInput对象。这个对象允许你从最后一次匹配的位置开始继续进行匹配操作,因此,它很适合于提取FONT标记内属性的名字-值对。创建PatternMatcherInput对象,以参数形式传入待匹配的字符串。然后,用匹配器实例提取出每一个FONT的属性。这通过指定PatternMatcherInput对象(而不是字符串对象)为参数,反复地调用PatternMatcher对象的contains()方法完成。PatternMatcherInput对象之中的每一次迭代将把它内部的指针向前移动,下一次检测将从前一次匹配位置的后面开始。

本例的输出结果

java perl5compiler,Java中正则表达式使用方法详解(四)相关推荐

  1. Java去除字符串中空格的方法详解

    昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. 代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空 ...

  2. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  3. Java中的main()方法详解

    源文作者:leizhimin    源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...

  4. java中main是什么_Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...

  5. Java多线程编程中Future模式的详解

    转载自 https://www.cnblogs.com/winkey4986/p/6203225.html Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker ...

  6. java读写json格式的文件方法详解.txt,并批量存储进redis

    捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...

  7. Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)

    Python 在子类中调用父类方法详解(单继承.多层继承.多重继承)   by:授客 QQ:1033553122   测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...

  8. php 文件扫描去重,PHP中的去重方法详解和文件下载

    本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...

  9. keep alive PHP,vue中keep-alive使用方法详解

    这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...

最新文章

  1. 异常“企图释放并非呼叫方所拥有的多用户终端运行程序”的处理
  2. 为啥不上SOA?中国企业的四大投资顾虑
  3. 解决Springboot文件上传报错,java.io.FileNotFoundException: D:\System\Temp\tomcat.819...00.tmp (系统找不到指定的文件。)
  4. 差分放大电路差模共模公式_提高差分放大器的共模抑制比,电阻的选择很关键...
  5. 使用了未经检查或不安全的操作_违规操作就是对家庭的不负责!电气安全员提醒你的安全常识...
  6. 输错密码?这个 sudo 会“嘲讽”你
  7. 怎么把录音导入库乐队_库乐队导入电脑版 苹果库乐队怎么导入歌
  8. 蓝海灵豚医疗器械管理软件隐形眼镜专版
  9. 写了一个wwwscan的路径生成工具
  10. 最后一天购书优惠!好书必买,不容错过!
  11. flyingsaucer转换多个html,如何在将PDF转换为HTML的同时在Flying-Saucer中设置基本URL?...
  12. 每日一个CSS——模拟键盘
  13. Imperva常用的维护命令
  14. 编程语言:Java与C语言C++的区别是什么?知道该学什么了吧!
  15. 模型预测控制(MPC)+逻辑控制(相平面分区控制)--matlab例程介绍
  16. 教主黄仁勋亮相GTC China:英伟达已售出15亿块GPU!重磅发布TensorRT 7
  17. 除法运算以及比较大小
  18. 一年级课程表(4月11日-4月15日)
  19. android获取ro._抖音数据采集教程,Android群控黑盒调用,Sekiro使用手册
  20. 适合电商平台的分账软件推荐

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 3896T人文英语1 参考试题
  2. [渝粤教育] 中国地质大学 数据结构 复习题 (2)
  3. [渝粤教育] 中国地质大学 材料力学 复习题 (2)
  4. 【渝粤教育】广东开放大学 物业服务营销管理 形成性考核 (59)
  5. mysql存储过程语法 if_mysql存储过程语法 if
  6. 【自适应(盲)均衡5】分数间隔均衡器基本原理及应用(更正数字通信翻译版中公式错误)
  7. 循环自相关函数和谱相关密度(一)——公式推导
  8. 无载波幅度和相位调制(CAP)与QAM调制的详细解析(可见光通信应用场景),以及CAP matlab程序下载链接
  9. FPGA硬件学习基础知识点总结(1)
  10. openoffice+linux+jodconverter+乱码,OpenOffice安装和转换乱码解决方案