首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

【100分求解决】正则表达式婚配

2013-01-11 
【100分求解决】正则表达式匹配a很好:/aa href\/huangshan-10HG-pingjia.html\55/aa中等:/a

【100分求解决】正则表达式匹配
<a>很好:</a><a href="/huangshan-10HG-pingjia.html">55</a><a>中等:</a><a href="/huangshan-10ZD-pingjia.html">16</a><a>很差:</a><span>0</span>

怎样用正则匹配出很好的评价数:55
当很好评价数为0时,<a>标签变成<span>标签,(PS:href后面的地址不确定,可能发生变动)
[解决办法]
如果前面是固定的话可以这样


     public static void main(String[] args){
     String html = "<a>很好:</a><a href="/huangshan-10HG-pingjia.html">55</a><a>很好:</a><span>0</span>";
     Matcher m = Pattern.compile("<a>很好:</a>\\<((?i)a\\s+.+?
[解决办法]
(?i)span)>(.+?)<").matcher(html);
     while(m.find()){
     System.out.println(m.group(2));
     }
      }

[解决办法]

public static void main(String[] args) throws Exception {
String str = "<a>很好:</a><a href="/huangshan-10HG-pingjia.html">55</a><a>中等:</a><a href="/huangshan-10ZD-pingjia.html">16</a><a>很差:</a><span>0</span>";
Matcher m = Pattern.compile("很好:.*?>(\\d+)<.*").matcher(str);
if(m.find()){
System.out.println(m.group(1));
}
}

[解决办法]
很好:是稳定的,就判断紧接包含它的<a>节点之后的<a>或<span>节点的值
[解决办法]
String s="<a>很好:</a><a href="/huangshan-10HG-pingjia.html">55</a><a>中等:</a><a href="/huangshan-10ZD-pingjia.html">16</a><a>很差:</a><span>0</span>";
Matcher m=Pattern.compile("(?<=>)\\d+(?=(</a>
[解决办法]
</span>))").matcher(s);
while(m.find())
   System.out.println(m.group(0));

热点排行