试试
<?php
   $str='开始位置:-test1.html- <A HREF="somestr">test1.html</A> -test2.html- <a HREF="somestr">test2.html</a> -test3.html-
   <A href="somestr">test3.html</a> -test4.html-
   <A href="somestr">test4</a> -test5.html- <A href="somestr">.html</a>:结束位置';  preg_match_all ('|<a href[^>]*?>[^<]+?\.html</a>|is',$str, $arr );
  echo '<pre>';
  print_r( $arr);
  echo '</pre>';?>

解决方案 »

  1.   

    ls 的没有得到 test1.html,test2.html,test3.html
      

  2.   

    那如果也有其它文件,不一定全是html文件,那该怎么改呢
      

  3.   

    比如说你还要匹配pdf那么可以如下<?php
       $str='开始位置:-test1.html- <A HREF="somestr">test1.html</A> -test2.html- <a HREF="somestr">test2.pdf</a> -test3.pdf-
       <A href="somestr">test3.html</a> -test4.html-
       <A href="somestr">test4</a> -test5.html- <A href="somestr">.html</a>:结束位置';  preg_match_all ('/<a href[^>]*?>[^<]+?\.(?:html|pdf)<\/a>/is',$str, $arr );
      echo '<pre>';
      print_r( $arr);
      echo '</pre>';?>