PHP preg_replace_callback_array PCRE正则函数



  • 定义和用法

    preg_replace_callback_array - 执行正则表达式搜索并使用回调替换
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] )
    
    该函数的行为类似于preg_replace_callback(),不同之处在于回调是按模式执行的。
  • 参数

    参数 必需的 描述
    patterns_and_callbacks 关联数组将模式(键)映射到回调(值)。
    subject 字符串或包含要搜索和替换的字符串的数组。
    limit 每个主题字符串中每个模式的最大可能替换数。 默认为-1(无限制)。
    count 如果指定,此变量将填充完成的替换次数。
  • 返回值

    如果subject参数是一个数组,则preg_replace_callback_array()返回一个数组,否则返回一个字符串。 发生错误时,返回值为NULL,如果找到匹配项,则将返回新子串,否则将原样返回。
  • 示例

    $subject = 'Aaaaaa Bbb';
    
    preg_replace_callback_array(
        [
            '~[a]+~i' => function ($match) {
                echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
            },
            '~[b]+~i' => function ($match) {
                echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
            }
        ],
        $subject
    );
    
  • 相关函数

    escapeshellcmd() - shell 元字符转义
    preg_replace_callback() - 执行一个正则表达式搜索并且使用一个回调进行替换
    preg_quote() - 转义正则表达式字符
    preg_replace() - 执行一个正则表达式的搜索和替换
    preg_last_error() - 返回最后一个PCRE正则执行产生的错误代码