PHP preg_last_error PCRE 正则函数

  • 定义和用法

    preg_last_error - 返回最后一个PCRE正则执行产生的错误代码
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 5.2.0+支持 支持
  • 语法

    preg_last_error ( void )
    
    返回最后一次PCRE正则执行的错误代码。
  • 参数

    参数 必需的 描述
  • 返回值

    返回最后一次PCRE正则执行的错误代码。
    返回下面常量中的一个(查看它们自身的解释):
    • PREG_NO_ERROR - 没有匹配错误时调用 preg_last_error() 返回。 v5.2.0
    • PREG_INTERNAL_ERROR - 如果有PCRE内部错误时调用 preg_last_error() 返回。 v5.2.0
    • PREG_BACKTRACK_LIMIT_ERROR - 如果调用回溯限制超出, 调用preg_last_error()时返回。 v5.2.0
    • PREG_RECURSION_LIMIT_ERROR - 如果递归限制超出, 调用preg_last_error()时返回。 v5.2.0
    • PREG_BAD_UTF8_ERROR - 如果最后一个错误时由于异常的utf-8数据(仅在运行在 UTF-8 模式正则表达式下可用)。 导致的,调用preg_last_error()返回。 v5.2.0
    • PREG_BAD_UTF8_OFFSET_ERROR - 如果偏移量与合法的urf-8代码不匹配(仅在运行在 UTF-8 模式正则表达式下可用)。 调用preg_last_error()返回。 v5.3.0
    • PREG_JIT_STACKLIMIT_ERROR - 当 PCRE 函数因 JIT 栈空间限制而失败, preg_last_error() 就会返回此常量。 v7.0.0
  • 示例

    preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');
    
    if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
       print 'Backtrack limit was exhausted!';
    }
    
    尝试一下
  • 相关函数

    preg_quote() - 转义正则表达式字符
    preg_match_all() - 执行一个全局正则表达式匹配
    preg_filter() - 执行一个正则表达式搜索和替换