1:HTML源代码:
<div class="box J_TBox tshop-psm tshop-psm-ssc10w" data-spm=&quot;2000.1165354.13902506.0&quot; >
<div class="shop-infocard">
<div class="bd">
<div id="infocard" class = "infocard">
<h1>巧巧好本本&nbsp;</h1>
<dl>
<dt>基本信息</dt>
<dd>
<ul>
<li>
认证情况:
<!--认证标志-->
<a href="http://service.taobao.com/support/5-27-357/help-1035.htm" target="_blank">
<img src="http://img.taobaocdn.com/zfb_person_small.gif?1235" border="0" align="absmiddle" alt="支付宝实名认证" title="支付宝实名认证">
</a>
</li>
<li>
淘宝店铺:
<a href="/view_shop.htm?shop_nick=36484872">d[u58752580]</a>
</li>
<li>
卖家信用:
<a href="http://rate.taobao.com/user-rate-f6633e930354cdf81ef591bf0ea0cfe1.htm">3397</a>
<span id="J_rateTipsR" tb:virtual="0%" tb:real="100%">
<a href="http://rate.taobao.com/user-rate-f6633e930354cdf81ef591bf0ea0cfe1.htm" target="_self"><img src="http://pics.taobaocdn.com/newrank/s_blue_4.gif"  border="0" align="absmiddle" class="rank" /></a></span>
</li>
<li>
买家信用:
<a href="http://rate.taobao.com/user-rate-f6633e930354cdf81ef591bf0ea0cfe1.htm">564</a>
<a href="http://rate.taobao.com/user-rate-f6633e930354cdf81ef591bf0ea0cfe1.htm" target="_self"><img src="http://pics.taobaocdn.com/newrank/b_blue_2.gif" title="501-1000个买家信用积分,请点击查看详情" border="0" align="absmiddle" class="rank" /></a></li>
<li>
宝贝信息:
<a href="http://list.taobao.com/browse/search_auction.htm?user=f6633e930354cdf81ef591bf0ea0cfe1&commend=all">出售中的宝贝</a>
</li>
<li>
所在地区:上海</li>
<li>
注册时间:2007年03月31日
</li>
<li>
上次登录:2011年07月18日
</li>
</ul>
<dd>
<dt>联系信息</dt>
<dd>
<ul>
<li>阿里旺旺: <span class="J_WangWang" data-nick="%E5%B7%A7%E5%B7%A7%E5%A5%BD%E6%9C%AC%E6%9C%AC" data-tnick="" data-encode="true" data-display="inline"></span></li>
<li>站内信件: <a href="http://member1.taobao.com/message/add_private_msg.htm?recipient_nickname=巧巧好本本">发送信件</a></li>
</ul>
</dd>
</dl>
</div>
</div>
</div>
</div>
上面是HTML源代码!红色是我想要的数据!要怎么写正则表达式才可以匹配到呢!

解决方案 »

  1.   

                string str = File.ReadAllText(Server.MapPath("txttxt.txt"), Encoding.GetEncoding("gb2312"));
                Regex reg = new Regex(@"(?s)<li>\s*所在地区:((?:(?!</?li).)*)");
                foreach (Match m in reg.Matches(str))
                    Response.Write(m.Groups[1].Value);
      

  2.   

    上面可以取到上海如果取不到的话看你抓取的html是否乱码
    是的话你要转下相应的编码!
      

  3.   

    写个简陋的正则,博高手一笑
    reg=/(?<=所在地区:)[\u4e00-\u9fa5]+/
      

  4.   

    (?i)(?<=所在地区[::])[^<>]+(?=</li>)
      

  5.   

    从你的表达式来看 像是JS正则
    但是JS正则内又不支持 (?<=)
    所以没看懂你的这个表达式  到底是什么
      

  6.   

    (?s)(?<=<li>\s*所在地区:)((?:(?!</?li).)*)