Java正则表达式如何匹配特定html标签内的内容
如题:
使用正则表达式,怎么匹配特定html标签内的内容。
比如,对于如下文本串:
...ignoredcontent
prefixcontent
innercontent
postfixcontent
...ignoredcontent
我们要提取出标签内的内容:innercontent(这里的html标签可以换成任何其它的标签,比如
标签)
这里引入正则表达式的group概念:详细点击文章查看
比如:对于一个正则表达式((A)(B(C)))
- group1为:((A)(B(C)))
- group2为:(A)
- group3为:(B(C))
- group4为:(C)
这样,我们就能够构造出如下的正则表达式:.*(<(html>)(.*)\2).*
此表达式的group概念为:
- group1:(<(html>)(.*)\2)
- group2:(html>)
- group3:(.*)
显然我们要求的就是group3的内容。
注意:\2是对group2的引用,也就是html>
该正则表达式也可以写成:.*(<(html>)(.*)(html>)).*化简其实就是.*(.*).*
代码实现为:
Stringp=".*(<(html>)(.*)\\2).*"; Stringm="prefix午休abcpostfix"; System.out.println("Pattern:"+p); System.out.println("Stringtobetest:"+m); Patternpattern=Pattern.compile(p); Matchermatcher=pattern.matcher(m); if(matcher.matches()){ System.out.println("MatchedString:"+matcher.group(3)); }else{ System.out.println("Sosad,notmatchinganything!"); }
总结
到此这篇关于Java正则表达式如何匹配特定html标签内容的文章就介绍到这了,更多相关Java正则表达式匹配html标签内容内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。