Heim >Backend-Entwicklung >PHP-Tutorial >求个正则 高难度的

求个正则 高难度的

WBOY
WBOYOriginal
2016-06-23 13:29:021132Durchsuche


[m:cname]
 

变成 (关键在 如果 上方
[list:cname]
 

变成 



[list:cname]



===============================

如果多层,这个很有挑战性 ,不知道正则行不行 如果行 给多加分



[channel:cname]


[artlist:title]

 


转为


[channel:cname]

   
       [artlist:title]
   

 


 


回复讨论(解决方案)

$s =<<< 'TXT'<!--m:{ $Row=10 $table=Channel $Where=[FatherID]=0 }--><a href="[m:curl]">[m:cname]</a><!--m--> <!--list:{ $Row=10 $table=Channel $Where=[FatherID]=0 }--><a href="[list:curl]">[list:cname]</a><!--list--> <!--channel:{ $row=10 $table=channel  }--><a href="[channel:curl]">[channel:cname]</a><!--artlist:{ $row=6 $cid=[channel:childids] $order=[order] desc,[id] desc }--><a href="[artlist:aurl]">[artlist:title]</a><!--artlist--> <!--channel-->TXT;$p = array(  '/<!--(\w+):{ \$Row=(\d+)(.+)}-->/i',  '/<!--\w+-->/',);$r = array(  '<qlist listname="$1"  row="$2"$3>',  '</qlist>',);echo preg_replace($p, $r, $s);
<qlist listname="m"  row="10" $table=Channel $Where=[FatherID]=0 ><a href="[m:curl]">[m:cname]</a></qlist> <qlist listname="list"  row="10" $table=Channel $Where=[FatherID]=0 ><a href="[list:curl]">[list:cname]</a></qlist> <qlist listname="channel"  row="10" $table=channel  ><a href="[channel:curl]">[channel:cname]</a><qlist listname="artlist"  row="6" $cid=[channel:childids] $order=[order] desc,[id] desc ><a href="[artlist:aurl]">[artlist:title]</a></qlist> </qlist>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn