Java用正则表达式获取html里的一段内容

Java用正则表达式获取http://www.sears.com的html源码里第1332行里的数字(500+)和1334行里的数字(286)。请给出代码。在线等,非常急!谢谢!所有分都给了
就是下面这两段里的 500+ 和 286
<a id="utilAllProd" class="utilAllProdAct" href="javascript:;"><span class="utilNumbProd">(500+)</span></a>

<a id="utilSearsProd" class="cursorPointer" onclick="sellerTabsOmniture('View Sears Only Products');" href="/search=digital camera&Sears?filter=storeOrigin&keywordSearch=false&vName=Cameras+%26+Camcorders&catalogId=12605&previousSort=ORIGINAL_SORT_ORDER&viewItems=50&storeId=10153&cName=Digital+Cameras"><span class="utilNumbProd">(286)</span></a>

第1个回答  2013-05-05
String strLine="<a id=\"utilAllProd\" class=\"utilAllProdAct\" href=\"javascript:;\"><span class=\"utilNumbProd\">(500+)</span></a>\r\n"
+"\r\n <a id=\"utilSearsProd\" class=\"cursorPointer\" onclick=\"sellerTabsOmniture('View Sears Only Products');\" href=\"/search=digital camera&Sears?filter=storeOrigin&keywordSearch=false&vName=Cameras+%26+Camcorders&catalogId=12605&previousSort=ORIGINAL_SORT_ORDER&viewItems=50&storeId=10153&cName=Digital+Cameras\"><span class=\"utilNumbProd\">(286)</span></a>";

Pattern pa = Pattern.compile("<span class=\"utilNumbProd\">\\((\\d+[\\+]*)\\)</span>");
Matcher ma = pa.matcher(strLine);
while (ma.find()) {
String text=ma.group(1);
System.out.println(text);
}追问

高手,谢谢!可以加一下我qq吗? 179985757 我在做一个project,还想咨询下。

第2个回答  2013-05-12
(?<=>\()\d+\+?(?=\))
没学过java,不知道怎么组织表达式,但是这个搜索给你找出来了,.net引擎下的正则
第3个回答  2013-05-05
如果你的源码是现成的话就用正则表达式 ^\((0-9+)\+*\)$ 试试,我没有试过这个匹配出来应该满足追问

其实是网络爬虫parser部分的一段,源码我是通过网站的搜索得到url然后把内容储存在一个stringbuilder里。问题是我做的是通过关键字搜索这个网站的产品,所以得到的源码里这段中间部分会根据关键字不同而不同,但还是要取里面的这两个数字输出。

相似回答