<div class="table-lists">
<table class="table-list">
<thead>
<tr>
<td class="table-product">商品名称</td>
<td class="table-price">
<a  class="orderup" href="javascript:changeSortByIcon(1)"   >
商品售价
</a>
</td>
<td class="table-stock">库存</td>
        <td class="table-price">
<a  href="javascript:changeSortByIcon(3)" class="orderup"  >
商品单价
</a>
</td>
<td  class="table-type">保障类型</td>
</tr>
</thead> <tbody>
            <tr>
                <td>
<a   href="/commodity/getCommodity.htm?commodityId=555204&commodityTypeForUIURL=yuanbao"
class="listicon-guan"
>【乐清人】100热血传奇元宝=104.00元</a>
<p>
商品种类:
元宝/点券<br />游戏/区/服:热血传奇/全区/全服
</p></td>
<td><span class="num">104.00</span>元 <a href="
/sales/getCommodityByPointSetp1.htm?commodityId=555204"
class="buy">立即购买</a>
 </td>
             <td>             10件
                          </td>
<td><span class="num">1.0400</span>元</td>
             <td>
                               <span class="listicon-shandian" title="当您完成支付,我们将立即为您发货,无需任何等待">闪电发货</span><span class="listicon-guanfang" title="提供盛大游戏的官方自动商品验证及自动充值,免除您的一切顾虑">官方保障</span>
         </td>
            </tr>
            <tr>
                <td>
<a   href="/commodity/getCommodity.htm?commodityId=125896&commodityTypeForUIURL=yuanbao"
class="listicon-guan"
>【小凡】100热血传奇元宝=104.07元</a>
<p>
商品种类:
元宝/点券<br />游戏/区/服:热血传奇/全区/全服
</p></td>
<td><span class="num">104.07</span>元 <a href="
/sales/getCommodityByPointSetp1.htm?commodityId=125896"
class="buy">立即购买</a>
 </td>
             <td>             4件
                          </td>
<td><span class="num">1.0407</span>元</td>
             <td>
                               <span class="listicon-shandian" title="当您完成支付,我们将立即为您发货,无需任何等待">闪电发货</span><span class="listicon-guanfang" title="提供盛大游戏的官方自动商品验证及自动充值,免除您的一切顾虑">官方保障</span>
         </td>
            </tr>
            <tr>
                <td>
<a   href="/commodity/getCommodity.htm?commodityId=145365&commodityTypeForUIURL=yuanbao"
class="listicon-guan"
>【诚信便捷】100热血传奇元宝=104.07元</a>
<p>
商品种类:
元宝/点券<br />游戏/区/服:热血传奇/全区/全服
</p></td>
<td><span class="num">104.07</span>元 <a href="
/sales/getCommodityByPointSetp1.htm?commodityId=145365"
class="buy">立即购买</a>
 </td>
             <td>             7件
                          </td>
<td><span class="num">1.0407</span>元</td>
             <td>
                               <span class="listicon-shandian" title="当您完成支付,我们将立即为您发货,无需任何等待">闪电发货</span><span class="listicon-guanfang" title="提供盛大游戏的官方自动商品验证及自动充值,免除您的一切顾虑">官方保障</span>
         </td>
            </tr>
            <tr>
                <td>
<a   href="/commodity/getCommodity.htm?commodityId=555095&commodityTypeForUIURL=yuanbao"
class="listicon-guan"
>【飞哥传神元宝】100热血传奇元宝=104.07元</a>
<p>
商品种类:
元宝/点券<br />游戏/区/服:热血传奇/全区/全服
</p></td>
<td><span class="num">104.07</span>元 <a href="
/sales/getCommodityByPointSetp1.htm?commodityId=555095"
class="buy">立即购买</a>
 </td>
             <td>             7件
                          </td>
<td><span class="num">1.0407</span>元</td>
             <td>
                               <span class="listicon-shandian" title="当您完成支付,我们将立即为您发货,无需任何等待">闪电发货</span><span class="listicon-guanfang" title="提供盛大游戏的官方自动商品验证及自动充值,免除您的一切顾虑">官方保障</span>
         </td>
            </tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">
     <div class="pager">
   <a class="prev-disable" ><s></s>上一页</a>
          <a  class="curr"   href="javascript:gotoPage(1);">1</a>
          <a  href="javascript:gotoPage(2);">2</a>
          <a  href="javascript:gotoPage(3);">3</a>
          <a  href="javascript:gotoPage(4);">4</a>
          <a  href="javascript:gotoPage(5);">5</a>
          <a  href="javascript:gotoPage(6);">6</a>
          <a  href="javascript:gotoPage(7);">7</a>
     <a class="next" href="javascript:gotoPage(2);">下一页<s></s></a>
     <span>共7页</span>
     <span>到第<input  type="text"  id="gopagenum" value="" onkeyup="javascript:inputSuitNum(7)" onafterpaste="javascript:inputSuitNum(7)"/>页<button type="button"  onclick="gotoPageByNum();">确定</button></span>
     </div>
  
</td>
</tr>
</tfoot>
</table>
</div>我要获取每一行的 商品名称,商品售价,库存,商品单价 
求高手正则帮忙~~~

解决方案 »

  1.   

    传送门:
    http://topic.csdn.net/u/20110415/16/690958fa-0695-447f-8e57-078749b238f2.html
      

  2.   

    把开头的那些“表头”和结尾的分页代码移除掉,剩下的进行下列操作
    第一步 删除所有的 换行
    第二步 把所有的</tr>替换成\n
    第三步 把所有的标签<([^>]*)>替换成逗号“,”
    第四步 删除过的的逗号
      

  3.   

    <a          href="[变量]"
    class="listicon-guan"
    >[商品名称]
    <p>
    商品种类:
    [变量]
    </p></td>
                    <td><span class="num">[价格]</span>元                                    <a href="[变量]"
                                            class="buy">立即购买</a>
                     </td>
                    <td>                        [单件]件
                                        </td>
                                    <td><span class="num">[单价]</span>元</td>
                                    <td>
                                                      <span class="listicon-shandian" title="当您完成支付,我们将立即为您发货,无需任何等待">闪电发货</span><span class="listicon-guanfang" title="提供盛大游戏的官方自动商品验证及自动充值,免除您的一切顾虑">官方保障</span>
                                            </td>
                </tr>
                        <tr>
                    <td>以上规则可以保存到数据库,也可以保存到文件
            private Match GetMatchRigidForList(string input, string pattern)
            {
                string _pattn = Regex.Escape(pattern);
                _pattn = Regex.Replace(_pattn, @"((\\r\\n)|(\\ ))+", @"\s*", RegexOptions.Compiled);
                _pattn = _pattn.Replace(@"\[变量]", @"[\s\S]*?");
                _pattn = _pattn.Replace(@"\[商品名称]", @"(?<val1>[^'""\ ]+?)");
                _pattn = _pattn.Replace(@"\[价格]", @"(?<val2>[^'""\ ]+?)");
                _pattn = _pattn.Replace(@"\[单件]", @"(?<val3>[^'""\ ]+?)");
                _pattn = _pattn.Replace(@"\[单价]", @"(?<val4>[^'""\ ]+?)");
                Regex r = new Regex(_pattn, RegexOptions.IgnoreCase | RegexOptions.Compiled);
                Match m = r.Match(input);
                return m;
            }GetMatchRigidForList(内容,规则)
      

  4.   

               string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));
                Regex reg = new Regex(@"(?is)(?<=<tbody[^>]*?>(?:(?!</?tbody).)*)(?:<tr[^>]*?>.*?<a[^>]*?>(.*?)</a>.*?<span\sclass=""num"">\s*([^\s]*?)\s*</span>.*?<td>\s*([^\s]*?)\s*</td>.*?<span\sclass=""num"">(.*?)</span>.*?</tr>)*");
                foreach (Match m in reg.Matches(str))
                {
                    foreach (Capture c in m.Groups[1].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[2].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[3].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[4].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                }
                Console.ReadLine();
    /*
    【乐清人】100热血传奇元宝=104.00元
    104.00
    10件
    1.0400
    【小凡】100热血传奇元宝=104.07元
    104.07
    4件
    1.0407
    【诚信便捷】100热血传奇元宝=104.07元
    104.07
    7件
    1.0407
    【飞哥传神元宝】100热血传奇元宝=104.07元
    104.07
    7件
    1.0407*/
      

  5.   

    还需要一个 
    <a          href="/commodity/getCommodity.htm?commodityId=555204&commodityTypeForUIURL=yuanbao"
    class="listicon-guan"
    >【乐清人】100热血传奇元宝=104.00元</a>
    /commodity/getCommodity.htm?commodityId=555204&commodityTypeForUIURL=yuanbao我需要这个链接 麻烦兄弟帮我加一下
      

  6.   

                string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));
                Regex reg = new Regex(@"(?is)(?<=<tbody[^>]*?>(?:(?!</?tbody).)*)(?:<tr[^>]*?>.*?<a[^>]*?href=['""]?([^'""\s]+)['""]?[^>]*?>(.*?)</a>.*?<span\sclass=""num"">\s*([^\s]*?)\s*</span>.*?<td>\s*([^\s]*?)\s*</td>.*?<span\sclass=""num"">(.*?)</span>.*?</tr>)*");
                foreach (Match m in reg.Matches(str))
                {
                    foreach (Capture c in m.Groups[1].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[2].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[3].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[4].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                    foreach (Capture c in m.Groups[5].Captures)
                        File.AppendAllText(@"E:\a.txt", c.Value + "\r\n");
                }
    /*
    /commodity/getCommodity.htm?commodityId=555204&commodityTypeForUIURL=yuanbao
    【乐清人】100热血传奇元宝=104.00元
    104.00
    10件
    1.0400
    /commodity/getCommodity.htm?commodityId=125896&commodityTypeForUIURL=yuanbao
    【小凡】100热血传奇元宝=104.07元
    104.07
    4件
    1.0407
    /commodity/getCommodity.htm?commodityId=145365&commodityTypeForUIURL=yuanbao
    【诚信便捷】100热血传奇元宝=104.07元
    104.07
    7件
    1.0407
    /commodity/getCommodity.htm?commodityId=555095&commodityTypeForUIURL=yuanbao
    【飞哥传神元宝】100热血传奇元宝=104.07元
    104.07
    7件
    1.0407*/
      

  7.   

    (?s)(?><a\b[^>]+>([^=]+=\d+(?:\.\d+)?元)</a>).+?(\d+(?:\.\d+)?)</span>元[^件]+?\d+件.+?(\d+(?:\.\d+)?)</span>元
      

  8.   


    MatchCollection mc = Regex.Matches(yourHtml,@"(?s)(?><a\b[^>]+>([^=]+=\d+(?:\.\d+)?元)</a>).+?(\d+(?:\.\d+)?)</span>元[^件]+?\d+件.+?(\d+(?:\.\d+)?)</span>元");
    foreach(Match m in mc)
    {
        m.Groups[1].Value;
        m.Groups[2].Value;
        m.Groups[3].Value;
        m.Groups[4].Value;
    }
      

  9.   

    兔子党理事  E:\1.txt  牛逼 ~
      

  10.   

    倒到dom中用xpath解决比正则要简单。
      

  11.   

    这个用规则表达式是不是用错地方了,应该用DOM和XPath来解决的问题。
      

  12.   

    竟然上首页了?PHP版$pattern = '/<td>\s*(?=<a).*(?<=>)(.*)(?=<).*(?<=">)(.*)(?=<).*<td>\s*(\d+.*)<\/td>.*(?<=">)(.*)(?=<)/Usix';
    preg_match_all($pattern, $subject, $m);
    /*
        [1] => Array
            (
                [0] => 【乐清人】100热血传奇元宝=104.00元
                [1] => 【小凡】100热血传奇元宝=104.07元
                [2] => 【诚信便捷】100热血传奇元宝=104.07元
                [3] => 【飞哥传神元宝】100热血传奇元宝=104.07元
            )    [2] => Array
            (
                [0] => 104.00
                [1] => 104.07
                [2] => 104.07
                [3] => 104.07
            )    [3] => Array
            (
                [0] => 10件
                                        
                [1] => 4件
                                        
                [2] => 7件
                                        
                [3] => 7件
                                        
            )    [4] => Array
            (
                [0] => 1.0400
                [1] => 1.0407
                [2] => 1.0407
                [3] => 1.0407
            )
    */