需要匹配的内容:<ul class="info">
        <li><i>租金:</i><em class="redfont">1500</em> 元/月 (面议)</li>
        <li><i>户型:</i>两室 2 厅 2 卫</li>
        <li><i>面积:</i>100㎡</li>        <li><i>装修:</i>精装修,普通住宅,朝向南北</li>
        <li><i>楼层:</i>第 7 层, 共 7 层</li>
        <li><i>区域:</i><a href='/lfguangyang/zufang/' onclick="_gaq.push(['_trackEvent', '58_detail_v1', 'zufang_lf', 'quyu']);">广阳</a>&nbsp; </li> <li><i>小区:</i>和平丽景精装修低价出租</li>
        <li><i>配置:</i><script language="javascript" type="text/javascript">var tmp = "床,热水器";document.write(tmp.replace(/\d+,/g,'').replace(/,\d+/g,'').replace(/\d+/g,'').replace(/,/g,' / '));</script></li>        <li class="operate"><i>&nbsp;</i><a title="收藏信息" href="javascript:setbg('收藏信息',400,200,'http://my.58.com/AddFavorite/?infoid=3160882686721')" onclick="_gaq.push(['_trackEvent', '58_detail_v1', 'zufang_lf', 'shoucang']);">收藏&raquo;</a><a title="分享信息" href="javascript:setbg('分享信息',610,270,'http://my.58.com/fenxiang/?infoid=3160882686721')" onclick="_gaq.push(['_trackEvent', '58_detail_v1', 'zufang_lf', 'fenxiang']);">分享&raquo;</a><a title="举报该信息" href="javascript:setbg('举报该信息',380,300,'http://my.58.com/interface/jubao.aspx?infoid=3160882686721')" onclick="_gaq.push(['_trackEvent', '58_detail_v1', 'zufang_lf', 'jubao']);">举报&raquo;</a></li>
    </ul>我写的正则:
/<li>\s?<i>(.*)<\/i>(.*)<\/li>/现在问题:
结果集中的区域与小区混在了一起。哪位高手帮忙优化下。先谢了

解决方案 »

  1.   


    在你的基础上做最小修改
    /<li>\s?<i>(.*?)<\/i>(.*?)<\/li>/ig
      

  2.   

     <li><i>区域:</i><a href='/lfguangyang/zufang/' onclick="_gaq.push(['_trackEvent', '58_detail_v1', 'zufang_lf', 'quyu']);">广阳</a>&nbsp; </li> <li><i>小区:</i>和平丽景精装修低价出租</li>再次明确下问题,上面我要取出 
    区域:广阳
    小区:和平丽景精装修低价出租请问这个正则怎么写。
      

  3.   


    #面积:</i>(.*?)</li>#ig#区域:</i><a[^>]+>(.*?)</a>.*?<i>小区:</i>(.*?)</li>#ig//这里面的匹配第一组和第二组就分别是区域和小区内容。
    //如果这两个内容都确定不会出现字符“<”,那么把(.*?)换成([^<]+)将执行更快。
      

  4.   

    /<li>\s*<i>(.*?)<\/i>(.*?)<\/li>/is最后确定正则,分享下。问题出在 ?的另一个用法。非贪婪型匹配