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 6年前