preg_last_error
返回最后一个PCRE正则执行产生的错误代码
preg_last_error()
函数返回最近评估的正则表达式的错误代码。返回的值将匹配以下常量之一:
常量 | 描述 |
---|---|
PREG_NO_ERROR | 没有发生错误。 |
PREG_INTERNAL_ERROR | 评估表达式时出错。 |
PREG_BACKTRACK_LIMIT_ERROR | 评估表达式所需的回溯次数超出了 PHP 配置中给出的限制。 |
PREG_RECURSION_LIMIT_ERROR | 评估表达式所需的递归深度超出了 PHP 配置中给出的限制。 |
PREG_BAD_UTF8_ERROR | 输入字符串包含无效的 UTF-8 数据。 |
PREG_BAD_UTF8_OFFSET_ERROR | 在评估过程中,字符串偏移量未指向多字节 UTF-8 符号的第一个字符。 |
PREG_JIT_STACKLIMIT_ERROR | JIT 编译器在尝试评估表达式时耗尽了堆栈内存。 |
使用 preg_last_error()
处理错误:
<?php $str = '这个正则表达式是无效的。'; $pattern = '/invalid//'; $match = @preg_match($pattern, $str, $matches); if($match === false) { // 发生错误 $err = preg_last_error(); if($err == PREG_INTERNAL_ERROR) { echo '正则表达式无效。'; } } else if($match) { // 找到匹配项 echo $matches[0]; } else { // 未找到匹配项 echo '未找到匹配项'; } ?>
preg_last_error()