有一段要用于循环的淘宝源代码,比较乱,要取其中的2个字段:
先取字段:2010041879438999
再取字段:abcdefg
看看有什么简单高效的正则可以取到,注意一下:代码中2010041879438999和abcdefg均出现了多次,只取一次就可以。源代码如下:<tr >
                            <td  class="type" > <a class="ico-shield" title="支付宝担保交易"><span>支付宝担保交易</span></a>
</td>
                            <td class="time2"> 2010.04.18 17:32
</td>
                            <td class="info">
                                <ul>
                                    <li class="name">
    
      
          




   <a title="淘宝购物-广东联通30元充值卡,10分钟到帐" href="https://lab.alipay.com/consume/queryTradeDetail.htm?tradeNo=2010041879438999" target="_blank">淘宝购物-广东联通30元充值卡,10分钟到帐</a>
   
  
  
  </li>
                                    <li class='no J-bizNo '>
                                     交易号:
                                                                                                                 2010041879438999
                                                                        </li>
                                </ul>
                            </td>
                            <td  class="other" >
                                <ul>
                                                                                                      <li class="name">
                                                                                            abcdefg 
<a class="js-add-contact js-xbox J_contact_2088302099959745" title="添加联系人" href='https://lab.alipay.com/user/contacts/addOppositeAsContact.htm?oppositeCardNo=2088302099959745&oppositeNickName=abcdefg'></a>
</li>
<li>
<span class="ww:token" ww:params='nick=abcdefg&tnick=abcdefg&display=inline'></span>
</li>
                                </ul>
                            </td>
                            <td class=" outlay "> 支出
</td>
                            <td class="amount">
                             29.50
                            </td>
                            <td class="status">
  
   
   
   
  
    交易关闭 
 
 </td>
                            <td  class="action" >
  
 
  
   
     
    
<a href="https://lab.alipay.com/consume/queryTradeDetail.htm?tradeNo=2010041879438999" target="_blank">详情</a>

 
 
                            </td>
                            <td  class="re" >
    <a class="ft-btn 

ico-flag-off re js-xbox" hidefocus="true" href="https://lab.alipay.com/consume/record/.htm?tradeNo=2010041879438999&_xbox=true" id="J_re_2010041879438999" title="点击编辑备注"></a>
</td>
                        </tr>

解决方案 »

  1.   

    var s = '<a href="https://lab.alipay.com/consume/queryTradeDetail.htm?tradeNo=2010041879438999" target="_blank">详情</a>';
    var reg = /(?:tradeNo\=)(\d+)/g;
    var res = reg.exec( s );
    alert( res[1] );
    s1 = 'a class="js-add-contact js-xbox J_contact_2088302099959745" title="添加联系人"  href="https://lab.alipay.com/user/contacts/addOppositeAsContact.htm?oppositeCardNo=2088302099959745&oppositeNickName=abcdefg"></a>';
    reg1 = /(?:oppositeNickName\=)(\w+)/mg;
    res = reg1.exec( s1 );
    alert( res[1] );
      

  2.   


    InputStream in=new FileInputStream("D:\\test\\regex.txt");//由于太多行,我存到文件里了
    byte[]b=new byte[in.available()];
    in.read(b);
    // System.out.println(new String(b));
    Matcher m=Pattern.compile("(?is).+?tradeno\\=([0-9]+).+?\\=([a-z]+)").matcher(new String(b));
    if(m.find()){
    System.out.println(m.group(1)+"  "+m.group(2));
    //2010041879438999  abcdefg
    }