目标文本是:
123456
{loop name="loop1" data=$arcrs}
  {loop:arclist name="loop3" param1= param2=}
    {loop name="loop3" data=$arc}
    {/loop}
       123456
  {/loop:arclist}
{/loop}123456789{loop name="loop1" data=$arcrs}
  {loop:arclist name="loop3" param1= param2=}
    {loop name="loop3" data=$arc}
    {/loop}
  {/loop:arclist}
{/loop}需要匹配出成里面的{loop}标签匹配出来应该是2个记录:记录1:{loop name="loop1" data=$arcrs}
  {loop:arclist name="loop3" param1= param2=}
    {loop name="loop3" data=$arc}
    {/loop}
       123456
  {/loop:arclist}
{/loop}记录2:{loop name="loop1" data=$arcrs}
  {loop:arclist name="loop3" param1= param2=}
    {loop name="loop3" data=$arc}
    {/loop}
  {/loop:arclist}
{/loop}正则表达式

解决方案 »

  1.   

    <?php
    $str = '123456
    {loop name="loop1" data=$arcrs}
      {loop:arclist name="loop3" param1= param2=}
        {loop name="loop3" data=$arc}
        {/loop}
           123456
      {/loop:arclist}
    {/loop}123456789{loop name="loop1" data=$arcrs}
      {loop:arclist name="loop3" param1= param2=}
        {loop name="loop3" data=$arc}
        {/loop}
      {/loop:arclist}
    {/loop}
    ';
    preg_match_all("#\{loop\s*name=\"loop1\"\s*data=[$]arcrs\}.*\{/loop\:arclist\}.*\{/loop\}#Uus",$str,$out);
    var_dump($out[0][0]);
    var_dump($out[0][1]);