第一:像网页链接<a .......... href="[url1]" .......>之间的内容中[URL[绝对地址替换成相对地址,首先要查找匹配这个链接,查找匹配这个串的正则表达式串为

(<\\s*a\\s+(?:[^\\s>]\\s*){0,})href\\s*=\\s*(\"|'|)([^\\2\\s>]*)\\2((?:\\s*[^\\s>]){0,}\\s *>)

//查找匹配的代码如下:
    String  patternStrs="(<\\s*a\\s+(?:[^\\s>]\\s*){0,})href\\s*=\\s*(\"|'|)([^\\2\\s>]*)\\2((?:\\s*[^\\s>]){0,}\\s *>)";
    PatternCompiler complier = new Perl5Compiler();
    PatternMatcher matcher = new Perl5Matcher();

Pattern patternForLink = complier.compile(patternStrs,
                                              Perl5Compiler.
                                              CASE_INSENSITIVE_MASK);
    PatternMatcherInput input = new PatternMatcherInput(htmlContent);
    while (matcher.contains(input, patternForLink)) {
      MatchResult match = matcher.getMatch();
      //处理匹配的结果,是要替换还是要其他处理
    }

第二:对其他的标签也类似只要把匹配的字符串改一下为要匹配的标签就可以了。(如IMG标签)
(<\s*img\s+(?:[^\s>]\s*){0,})src\s*=\s*("|'|)([^\2\s>]*)\2((?:\s*[^\s>]){0,}\s*>),这样就可以处理
<img.....................src="[url]"...............>的标签匹配,对其他的标签也一样......
总结:对于大量要处理的文本,建议还是用到正则表达式,而要处理的文本比较少时,用普通的字符串API处理函数就足够了。

转载于:https://www.cnblogs.com/bihailantian/archive/2010/09/20/1831951.html

Java正则表达式匹配、替换HTML内容相关推荐

  1. Java 正则表达式匹配模式[贪婪型、勉强型、占有型]

    转载自  Java 正则表达式匹配模式[贪婪型.勉强型.占有型] Greediness(贪婪型):最大匹配 X?.X*.X+.X{n,} 是最大匹配.例如你要用 "<.+>&qu ...

  2. 用JAVA正则表达式轻松替换JSON中大字段

    用JAVA正则表达式轻松替换JSON中大字段 (一)背景 (二)正则表达式 (三)在JAVA代码中的实现 (四)合并正则表达式 (五)最终结果 (六)所感 (一)背景 在软件开发工作中我们经常用JSO ...

  3. java 正则表达式匹配数字_java正则表达式匹配所有数字的案例

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...

  4. java正则验正斜杠_JAVA资格认:java正则表达式匹配斜杠

    在正则表达式里面匹配一个斜杠,需要用4个斜杠: Java代码 import java.util.regex.Matcher; import java.util.regex.Pattern; publi ...

  5. Vim正则表达式匹配替换字符串

    /*********************************************************************** Vim正则表达式匹配替换字符串* 说明:* 用Vim用 ...

  6. java正则表达式匹配字符串_java正则表达式如何匹配字符串

    java正则表达式匹配字符串的方法:使用tostring,代码为[while(matcher.find()){tmp.add(matcher.group(1).toString());}]. java ...

  7. java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  8. java正则表达式匹配小括号内的内容

    经常用到正则匹配小括号内容,在此摘录下来 String content = "src: local('Open Sans Light'), local('OpenSans-Light'), ...

  9. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  10. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

最新文章

  1. 华为企业管理经典案例_企业税务筹划-华为公司税筹案例分析
  2. sql科学计数法转换为普通数字_一张图读懂Python3的Number(数字)类型
  3. php 精品课程,php51精品课程高级版
  4. VTK:PolyData之TubeFilter
  5. java类名变量_java类名操作变量方法
  6. s8050三极管经典电路_浅谈电路的PSRR(电源纹波抑制比)
  7. SAP系统搜索分页的前后台实现
  8. Flink DataStream 编程入门
  9. 让你瘦不停的23个小细节 - 生活至上,美容至尚!
  10. 测试C++代码与WebBrowser HTML的互动
  11. gradle下载慢的解决方案
  12. 阿里巴巴Java开发手册(泰山版)【篇一】编程规约 附2: 专有名词解释 附3: 错误码列表
  13. 【毕设资料】 Web版RSS阅读器(一)——dom4j读取xml(opml)文件
  14. 微信分享网页时自定义标题描述和图片
  15. mysql通过股票代码查数据_如何在交易数据中查询各个版本交易量前三的股票?(MySQL分组排名)...
  16. [BJDCTF2020]Mark loves cat
  17. c语言100列作业,C语言经典例题100例——C语言练习实例72解答(链表)
  18. 基尔霍夫定律的验证与multisim仿真(附工程文件)
  19. rar,zip文件加密判断
  20. 基于单片机的十字路口交通灯设计(带左转、紧急、夜间模式且每个绿灯后都有黄灯二)

热门文章

  1. 渗透测试之通过代码审计打点
  2. 清理apache共享内存引起的oracle宕机
  3. python函数详解
  4. java 字符串缓冲池 String缓冲池
  5. 基于字典 ,输入季节显示月份(Python)
  6. xgboost相比传统gbdt有何不同?xgboost为什么快?xgboost如何支持并行?
  7. 数据湖之iceberg系列(四)iceberg-spark编程
  8. Apache Iceberg 快速入门
  9. Spark读取配置源码剖析
  10. HBase常用操作之namespace