我从网页中提取出如下两行信息:<td><a href="/archives/110010/jjtgr/">中国工商银行股份有限公司</a></td>
<td>中国工商银行股份有限公司</td>
现在想要一个正则表达式既能提取出第一行中文字部分又能提取出第二行的文字部分:中国工商银行股份有限公司。

解决方案 »

  1.   

    这样?String[] test = {"<td><a href=\"/archives/110010/jjtgr/\">中国工商银行股份有限公司</a></td>", "<td>中国工商银行股份有限公司 </td>"};
    String reg = "(?i)<td>\\s*(?:<a[^>]*>)?([^<>]+)(?:</a>\\s*)?</td>";
    for(String s : test)
    {
    Matcher m = Pattern.compile(reg).matcher(s);
                if(m.find())
                {
                 System.out.println(m.group(1));
                }
    }
    /*--------输出---------
    中国工商银行股份有限公司
    中国工商银行股份有限公司 
    */
      

  2.   


    var str='<td> <a href="/archives/110010/jjtgr/">中国工商银行股份有限公司 </a> </td> <td>中国工商银行股份有限公司 </td>';
    var res=[];//返回一个数组
    str.replace(/<td>(.*?)<\/td>/g,function($,$1) {
        res.push($1.replace(/<\/?[^>]+>/g,""));
    });
    alert(res[0]);
    alert(res[1]);
      

  3.   

    三楼的我懂了,四楼的我看不太懂你的代码,不是J2SE代码,我比较菜谢谢两位热心的朋友。