정규식 대체를 기반으로 하는 템플릿 엔진은 정규식의 최대 역추적/재귀 제한에 쉽게 도달할 수 있습니다.
지연 매칭은 나쁘지 않습니다. 일반적인 상황에서는 템플릿이 충분하지 않아 한계를 초과하지 않는 경우가 많습니다. Discuz의 템플릿 엔진이 널리 사용됩니다. 하지만 주의를 기울이지 않고 공부하지 않으면 쉽게 실수를 하고 문제에 부딪히게 됩니다.
preg_*가 null을 반환할 경우 주의해야 합니다. 판단 기능은 is_null입니다.
오류는 심각하지 않지만 디버깅이 쉽도록 모든 오류를 완전히 출력하는 것이 가장 좋습니다.
오류의 원인을 출력하는 것 외에도 일치하는 텍스트와 사용된 정규식도 출력하므로 디버깅이 쉽습니다.
PHP 코드
코드 복사 코드는 다음과 같습니다.
if (is_null ($tmp )){
$error_code = preg_last_error();
switch($error_code){
case PREG_NO_ERROR:
echo 'PREG_NO_ERROR'
break;
echo 'PREG_INTERNAL_ERROR';
case PREG_BACKTRACK_LIMIT_ERROR:
echo 'PREG_BACKTRACK_LIMIT_ERROR'
case PREG_BAD_UTF8_ERROR:
echo 'PREG_BAD_UTF 8_ERROR'; >에코 '알 수 없음 ERROR';
}
exit;
}
참조
1, 2010, Laruence
"정규 함수의 최대 역추적/재귀 제한 이해 표현식(pcre) 》
2, 2011, PHP 중국어 매뉴얼
preg_last_error
위 내용은 Perl 정규식 내용을 포함하여 Perl 정규식과 템플릿 엔진 정규식 디버깅 팁을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.