核心知识点
- 正则表达式在Java中使用
- Jsoup用法
如下一段HTML内容标签,我要处理a标签的中的内容。要求是提取a标签中最大的一个数字。
<a hidefocus="" href="javascript:;" class="noprev"><img src="" /></a>
<a hidefocus="" href="javascript:;" class="current">1</a>
<a hidefocus="" href="javascript:;" class="">2</a>
<a hidefocus="" href="javascript:;" class="">不知道</a>
<a hidefocus="" href="javascript:;" class="">3</a>
<a hidefocus="" href="javascript:;" class="">6</a>
<a hidefocus="" href="javascript:;" class="next">hahaha<img /></a>
从上面的示例可以看出,a标签的内容有中文,或者其他英文字符。选取最大的一个字符,我只考虑数字,其他一概不考虑。因此要使用正则表达式。
Jsoup格式化这段内容
//artistDocument为HTML内容
Document document = Jsoup.parse(artistDocument);
Java创建正则
String pattern = "^\\d*$";
Pattern regx = Pattern.compile(pattern);
获取最大的数字的业务逻辑
Elements tagElements = document.getElementsByTag("a");
//最大的数字
int totalPage = 0;
for(int i=0; i<tagElements.size(); i++) {
String pageIndex = tagElements.get(i).text();
//正则实例化内容
Matcher m =regx.matcher(pageIndex);
//正则验证 a标签的内容是否为数字
if(m.find()) {
if(totalPage < Integer.parseInt(pageIndex)) {
totalPage = Integer.parseInt(pageIndex);
}
}
}
水平原因可能存在错误,希望指正 chenrui@marsdl.com