使用Java正则表达式匹配、替换HTML内容
来源:互联网 发布:甲子网络域名 编辑:程序博客网 时间:2024/05/29 21:30
本文向您介绍使用Java正则表达式匹配和替换HTML的内容,作者介绍了两种方法,一种用于替换链接地址,一种用于替换图片。
AD:【活动】Web和APP兼容性实战 Win10训练营免费报名
曾经了解过JavaScript的正则表达式,知道其功能的强大,对于处理文本比用普通的API处理不管从效率上还是从功能上都有很大的优势。今天项目要求用到Java的正则表达式,于是在网上Google,找到一个Jakarta ORO的库,听说是Java中功能最强大的正则表达式库,确实也如此,Sun公司的JDK里自带的正则表达式功能是远远不如ORO库,从正则表达式的角度上看,其比普通的API处理文本是复杂很多。
但如果应用得恰当的话,会提高工程的质量,于是项目中就应用了这个ORO库,把浏览器请求得到的HTML页面进行解释替换实现一个代理采集信息的功能。感觉自己好像是在开发软件,不是在设计网页。正则表达式有一个很好用的工具--RegexBuddy,应用这个工具可以调度一个匹配你需要的正则表达式串,经过几番调度,把一些HTML标签的正则表达式匹配出来。
第一:像网页链接<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处理函数就足够了。
- Java正则表达式匹配、替换HTML内容[使用Jakarta ORO]
- 使用Java正则表达式匹配、替换HTML内容
- 正则表达式匹配HTML内容
- java使用正则表达式匹配HTML标签
- 正则表达式,对html内容匹配分组更改(替换/调换)内容
- Java替换中使用正则表达式实现中间模糊匹配
- 使用java 正则表达式 只替换排除< >之内的内容
- java正则表达式来替换文本中匹配正则的内容
- eclipse使用—正则表达式匹配替换
- JAVA正则表达式匹配,替换,查找,切割
- JAVA 正则表达式(匹配、切割、替换)
- JAVA正则表达式匹配,替换,查找,切割
- JAVA正则表达式匹配,替换,查找,切割
- JAVA正则表达式匹配,替换,查找,切割
- Java正则表达式匹配,替换,查找,切割
- 使用正则表达式替换文件内容
- C#正则表达式查找匹配循环替换内容
- Java替换HTML标签正则表达式
- android中的http通讯----(5)客户端解析xml文件
- 数据挖掘十大算法翻译——3SVM
- Android开发经验之在图片上随意点击移动文字
- iOS消息推送机制
- Oracle directory 目录
- 使用Java正则表达式匹配、替换HTML内容
- lincode刷题--最长单词
- 机器学习(Machine Learning)心得体会(1)线性回归
- 特征向量相似度和距离的计算
- web入门第10天
- Linux grub 引导区修复记录
- 使用CocoaPods来管理iOS项目的依赖库
- Fedora 安装Oracle 11gR2数据库
- centos 安装 redis