各位大师好,小弟现在在做一个抓取网页信息的程序。
网页格式如下:
<div class="buyinfo">
<span class="m">
  <a href="http://detail.china.alibaba.com/seller/offerdetail/41161973.html" target=_blank onmousedown="javascript:addParam(this,'keywords','')">
  <span class="lh15">求购棉花,皮棉</span></a></span>
  <nobr><span class="gray">2006/04/26 15:05</span></nobr><br /> <span class="G">
                           <span class="gray s">价格要求:随行就市</span><br />
                              <span class="gray s">规格要求:二级,三级,四级 </span><br />
                              <span class="gray s">包装要求:不限 </span><br />
                    
                  </span>
</div>
我现在想抓取的内容是:
<span class="gray s">价格要求:随行就市</span><br />
                              <span class="gray s">规格要求:二级,三级,四级 </span><br />
                              <span class="gray s">包装要求:不限 </span><br />请问应该怎么写:
我在"<span class="G"></span>“中间加了一个表达式,(.*),
就是 <span class="G">(.*)</span> 来匹配,但是得不到。
请各位兄弟帮我看看怎么写。

解决方案 »

  1.   

    我不知道是不是要抓取的内容里带<span class="gray s">这种html标签的原因。
      

  2.   

    <span class="gray s">.*</span>
      

  3.   

    <span class="G">(?<desc>.*)</span>
    我的意思是用上面的方法匹配的, 然后通过
    matches[i].Groups["desc"].Value;的方法来获得它的值。但是得不到。
      

  4.   

    Truly的方法只能得到 <span class="gray s"> </span>中的值。
    但我这个是想得到 <span class="G"> </span>中所有的内容。
    就是得到下面的内容。
    <span class="gray s">价格要求:随行就市</span><br />
                                  <span class="gray s">规格要求:二级,三级,四级 </span><br />
                                  <span class="gray s">包装要求:不限 </span><br />
      

  5.   

    string s = "<span class=\"gray s\">价格要求:随行就市</span><br /><span class=\"gray s\">规格要求:二级,三级,四级 </span><br /><span class=\"gray s\">包装要求:不限 </span><br />";Regex reg = new Regex("<span class=\"gray s\">(?<desc>.*)</span>");
    MatchCollection mc = reg.Matches(s);
    Response.Write(mc[0].Groups["desc"].Value);
      

  6.   

    string s2 = "<span class=\"G\"><span class=\"gray s\">价格要求:随行就市</span><br /><span class=\"gray s\">规格要求:二级,三级,四级 </span><br /><span class=\"gray s\">包装要求:不限 </span><br /></span>";
    Regex reg = new Regex("<span class=\"G\">(?<desc>.*)</span>");
    MatchCollection mc = reg.Matches(s2);
    Response.Write(mc[0].Groups["desc"].Value);
      

  7.   

    Regex reg = new Regex(@"<(span)[^>].*>.*<\/(span)>);
      

  8.   

    Regex reg = new Regex(@"<(span)[^>].*>(?<desc>.*)<\/(span)>);
      

  9.   

    没看清意思,汗Regex reg = new Regex(@"<(span) class=""G"">(?<desc>.*)<\/(span)>");
      

  10.   

    各位的思路是对的。但是可能没有考虑到 ,
    字符前面有回车,或则空格什么的。 (?<desc>.*)得不到。
    不知道谁可以写更完整的表达式。
      

  11.   

    try this: <span[\s]+class=\"G\">(?<desc>[\s\S]*)</span>
      

  12.   

    dk385(大康) 的得到的也不对我是想采集这个页面的信息:http://list.china.alibaba.com/seller/offerlist/41501.html
    如果有兴趣的朋友可以做一个完整的例子。不胜感激
      

  13.   

    <span[^>]+>.*?</span><br.*?>