PHP代码:<?php
$html = '<div id="biuuu">51CTO</div>
<div id="biuuu_2">51CTO2</div>
<div id="biuuu_3">51CTO3</div>';preg_match_all('/\"([a-z0-9_]+)\">([^<>]+)<\/div>/',$html,$result);
print_r($result); 
输出:
Array ( 
[0] => Array ( [0] => "biuuu">51CTO [1] => "biuuu_2">51CTO2 [2] => "biuuu_3">51CTO3 ) 
[1] => Array ( [0] => biuuu [1] => biuuu_2 [2] => biuuu_3 ) 
[2] => Array ( [0] => 51CTO [1] => 51CTO2 [2] => 51CTO3 ) ) 
为什么返回的数组里 元素还是数组; 为什么是上面的结果?求解释

解决方案 »

  1.   

    你看一下
    preg_match('/\"([a-z0-9_]+)\">([^<>]+)<\/div>/',$html,$result);
    print_r($result); 输出的结果就应该明白了
      

  2.   

    Array[0]对应的两个()合起来的所有的匹配的结果,
    Array[1]对应第一个()中的所有匹配结果,即([a-z0-9_]+)的匹配结果,
    Array[2]对应第二个()中的所有匹配结果,即([^<>]+)的匹配结果。Array[0][0]对应两个()合起来的第一个匹配结果
    ……
    Array[1][0]对应第一个()的第一个匹配结果
    ……
    Array[2][0]对应第二个()的第一个匹配结果具体参考PHP帮助文件中preg_match_all函数说明。
      

  3.   

    [0] => Array ( [0] => "biuuu">51CTO [1] => "biuuu_2">51CTO2 [2] => "biuuu_3">51CTO3 )  
    这个是一共匹配的数组
    [1] 是第一个()捕获的
    [2] 是第二个()捕获的.
      

  4.   


    我觉得匹配的结果是:
    [0] => "biuuu">51CTO [1] => "biuuu_2">51CTO2 [2] => "biuuu_3">51CTO3
    这三个 ,但是为什么结果是上面那样啊??我是菜鸟新手,求大哥前辈们讲解一下....谢谢
      

  5.   

    版主说的是
    \"([a-z0-9_]+)\">([^<>]+)<\/div>
    想要怎么分析啊
    要是 不知道正在语法  google  一下