<?php
$contents = " <div>0 </div>1<div>2 </div>3<div>4 </div>";eregi("<div>(.*)</div>",$contents,$regs);
echo $regs[0];?>我想只输出<div>0 </div>怎么做!匹配第一个就行,不要全部匹配

解决方案 »

  1.   

    难道eregi不能实现
    还是没人会呢?
      

  2.   

    单独的匹配<div>0 </div>,
    " <div>0 </div>"就行了啊.
      

  3.   

    还是说0不是关键,只是相匹配第一个?
    那就这样
    "^ <div>([^>]*) </div>"
      

  4.   

    上面匹配的结果由于有小括号,所以regs[1]有值,去掉小括号,匹配出来就只剩regs[0]了
    "^ <div>[^>]* </div>"
      

  5.   

    $contents = " <div>0 </div>1 <div>2 </div>3 <div>4 </div>";preg_match("/<div>.*?<\/div>/is",$contents,$matchs);print_r($matchs);output:
    Array
    (
        [0] => <div>0 </div>
    )
    注意*?和+?的用法,懒惰模式。默认情况下是贪婪模式。