有这样一个字符串:
</html>
    <body>
       [IF:HaveCar:1]
           [IF:NoCar:0]
              bbbbbbbbb
           [/IF:NoCar:0]
           [IF:HaveCar:1]
ccccb
           [/IF:HaveCar:1]
       [/IF:HaveCar:1]
       [IF:HaveCar:2]
   eeeeeeeeeeeee
       [/IF:HaveCar:2]
    </body>
</html>

,请帮写个获得所有[IF:HaveCar:1]和结束[/IF:HaveCar:1]标签的函数,
并获得他们的层数
(注:[IF:xxx:x]后面两是变数的字符串,不过[IF:xxx:x]和[/IF:xxx:x]格式是固定的,而标签的层数是未知的哦);
非常感谢好心人。

解决方案 »

  1.   

    是这样的,算是一个网页模板,假如[IF:xxx:y]中的xxx和y刚好搭配集合中的某一键和值,就把[IF:xxx:y] 和[/IF:xxx:y]中的内容输出: 
    就是假若在 [IF:NoCar:0]bbbbbbbbb[/IF:NoCar:0] 中NoCar,0在给定的集合中有的话,就输出bbbbbbbbb,生成的网页代码是: 
    </html> 
        <body>           bbbbbbbbb     </body> 
    </html>  
      当然标签 [IF:NoCar:0]必须在HTML代码中去掉。       
      

  2.   

    http://bbs.phpchina.com/thread-122296-1-1.html其实一个递归正则就可以搞定,不过最近迷恋词法分析-_-#
    而且正则分析出来的东西操作起来不是很方便。