现在一篇文档中有以下两种字符:
第一种是:<li><a href="/wiki/CaspioNet" title="CaspioNet">CaspioNet</a></li> 
第二种是:<li><a href="/w/index.php?title=GTRK_Altay&amp;action=edit&amp;redlink=1" class="new" title="GTRK Altay (page does not exist)">GTRK Altay</a></li> 第二种的中间比第一种多了class="new",现在,我要用正则选出类似第一种的字符串,这个正则要怎么写呢?
我是这样写的:
<li><a\s*href=\".*\"\s+title=\".*\">.*<\/a><\/li>
把这两种全先出来了.谁能具体和我说一下, 正则中的非要怎么写呢?

解决方案 »

  1.   

    建议看一下htmlparser
    http://htmlparser.sourceforge.net/
      

  2.   

    把 .* 改为 [^\"]* 就可以了<a></a> 之间的那个 .* 改为 .+?
      

  3.   

    .* 是贪婪式的匹配,.*? 则是懒惰式的匹配两者的区别见下面贴子中 34 楼的回复:
    http://topic.csdn.net/u/20080325/17/fb7a3e8d-029a-4d8e-89ae-77a9d28ec301.html[^\"]* 也可以改为 .*? 效果一样,不过用 [^\"]* 效率高一些,这个表达除了 " 外的其他字符,
    也就是说所匹配到的东西里面不会含有 " 的。