<size>.......</size><size>..........</size>
我要匹配<size>..</size>的内容,表达式要加修饰符/spreg_match_all("/<\s*size[^>]*>\s*(.*)\s*<\s*\/size\s*>/s",$txt,$match);
这种表达式,我发现是错的,它居然匹配第一个<size>   到   最后一个</size>   ,明显错误,,请教高手怎么写

解决方案 »

  1.   

    没看明白怎么回事,你是要size里面的内容吗?
      

  2.   

    <size>123</size>
    <size>321</size>
    我要实现这种效果
    array(2) {
      [0]=>
      array(2) {
        [0]=>
        string(16) "<size>123</size>"
        [1]=>
        string(16) "<size>321</size>"
      }
      [1]=>
      array(2) {
        [0]=>
        string(3) "123"
        [1]=>
        string(3) "321"
      }
    }
      

  3.   

    试一下非贪婪模式preg_match_all("/<\s*size[^>]*>\s*(.+?)\s*<\s*\/size\s*>/s",$txt,$match);
      

  4.   


    $txt =<<<eof
    <size>123</size>
    <size>321</size>
    eof;
    preg_match_all("/<\s*size[^>]*>\s*(.*?)\s*<\s*\/size\s*>/s",$txt,$match);
    echo '<pre />';
    print_r($match);输出:
    Array
    (
        [0] => Array
            (
                [0] => 123
                [1] => 321
            )    [1] => Array
            (
                [0] => 123
                [1] => 321
            ))