这篇文章主要讲解了“如何使用Java正则表达式匹配、替换HTML内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Java正则表达式匹配、替换HTML内容”吧!
创新互联建站总部坐落于成都市区,致力网站建设服务有成都网站建设、做网站、网络营销策划、网页设计、网站维护、公众号搭建、小程序制作、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
曾经了解过JavaScript的正则表达式,知道其功能的强大,对于处理文本比用普通的API处理不管从效率上还是从功能上都有很大的优势。今天项目要求用到Java的正则表达式,于是在网上Google,找到一个Jakarta ORO的库,听说是Java中功能***大的正则表达式库,确实也如此,Sun公司的JDK里自带的正则表达式功能是远远不如ORO库,从正则表达式的角度上看,其比普通的API处理文本是复杂很多。
但如果应用得恰当的话,会提高工程的质量,于是项目中就应用了这个ORO库,把浏览器请求得到的HTML页面进行解释替换实现一个代理采集信息的功能。感觉自己好像是在开发软件,不是在设计网页。正则表达式有一个很好用的工具--RegexBuddy,应用这个工具可以调度一个匹配你需要的正则表达式串,经过几番调度,把一些HTML标签的正则表达式匹配出来。
***:像网页链接之间的内容中[URL[绝对地址替换成相对地址,首先要查找匹配这个链接,查找匹配这个串的正则表达式串为
(<]\\s*){0,})href\\s*=\\s*(\"|'|)([^\\2\\s>]*)\\2((?:\\s*[^\\s>]){0,}\\s">\\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*>),这样就可以处理
总结:对于大量要处理的文本,建议还是用到正则表达式,而要处理的文本比较少时,用普通的字符串API处理函数就足够了。
感谢各位的阅读,以上就是“如何使用Java正则表达式匹配、替换HTML内容”的内容了,经过本文的学习后,相信大家对如何使用Java正则表达式匹配、替换HTML内容这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!