public function testTmpExreg()
    {
        $str        = '';
        for($i = 0; $i< 1352; $i++){
            $str    .= 'A';
        }
//         preg_match('#.*?#siU', $str, $m);
//         var_dump($m);
//         exit;
        $content    = '
{% block body %}
	    {% block header %}'.
	    $str
        .'{% /block %}
{% /block %}';
        try{
            $match = preg_match_all('#\{%\s*block(.*)\s*%\}((.*(?R)*)*)\{%\s*/\s*block\s*%\}#siU', $content, $matches);
//         $match = preg_match('#\{%\s*block\s+body\s*%\}(((.*)(?(?!\{%\s*/\s*block.*\s*%\})((\{%\s*block.*\s*%\})((.*(?4)*)*)(\{%\s*/\s*block\s*%\}))))*?)\{%\s*/\s*block\s*%\}#siU', $content, $matches);    //
        var_dump(112,$match);
        var_dump($matches);
        var_dump(strlen($content));
        }catch(\Throwable $e){
            var_dump($e->__toString());   
        }
        exit;
    }
有没有人知道 为什么 for($i = 0; $i< 1351; $i++){ 这一行$i超过1352时,这个正则就不能匹配了?
建议给代码加上高亮
– dudu 7年前