正则表达式要与相关工具结合才能发挥作用!preg_match和preg_match_all是不可能做到的
用preg_split就能较好的解决

解决方案 »

  1.   

    也就是取得一对标签里的内容
    <t>aaa<t>bbb</t>dddd</t>
    取得的因该是aaa<t>bbb</t>dddd
    <t>ccc</t>yyy<t>ooo</t>
    取得的因该是
    ccc,   ooo
      

  2.   

    因为你没有实际的去测试一下
    取得一对标签里的内容可写作
    <t>.*?</t>当使用preg_match和preg_match_all时:
    对于嵌套的 <t>aaa<t>bbb</t>dddd</t>
    <t>.*?</t>
    匹配到的是 <t>aaa<t>bbb</t>
    <t>.*</t>
    匹配到的是 <t>aaa<t>bbb</t>dddd</t>对于并列的 <t>ccc</t>yyy<t>ooo</t>
    <t>.*?</t>
    匹配到的是 <t>ccc</t> 和 <t>ccc</t> <t>ooo</t>
    <t>.*</t>
    匹配到的是 <t>ccc</t>yyy<t>ooo</t>而
    $ar = preg_split("#<(/?t)>#",$str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    对于嵌套的 <t>aaa<t>bbb</t>dddd</t>
    得到
    Array
    (
        [0] => t
        [1] => aaa
        [2] => t
        [3] => bbb
        [4] => /t
        [5] => dddd
        [6] => /t
    )对于并列的 <t>ccc</t>yyy<t>ooo</t>
    得到
    Array
    (
        [0] => t
        [1] => ccc
        [2] => /t
        [3] => yyy
        [4] => t
        [5] => ooo
        [6] => /t
    )接下来该怎样做,我想不用说了吧?