java正则的问题
以下是代码:
List<String> resultList = new ArrayList<String>();
Pattern p = Pattern.compile(".htm\">([^%]*)");//匹配.htm">开头,%结尾的文档
Matcher m = p.matcher(html_line);//开始编译
while (m.find())
{
resultList.add(m.group(1));//获取被匹配的部分
}
我是想抽出字符串
<td width="18%"><a href="taiwan/Changhua.htm">30%</td>
中的30这个位置的数字,可是却抽不出来,但要是数字不是30而是其他,比如
<td width="18%"><a href="taiwan/Changhua.htm">40%</td>
就可以抽出40,求高手指点为什么,错在哪
------解决方案--------------------改成这样试试:
Java code
Pattern p = Pattern.compile(".htm\">(\\d+)[^%]*");
------解决方案--------------------
[^%]
代表不能是3、7等任何一个,你30里面可是包含了3的。
参考楼上哥们的做法。