📅  最后修改于: 2023-12-03 15:33:27.925000             🧑  作者: Mango
在 PHP 7.3 中,preg_replace
函数有一些新特性和规则,这些新特性和规则可以使开发更加高效和方便。
在 PHP 7.3 中,preg_replace
的第四个参数可以支持一个闭包函数。闭包函数将被用于执行替换。这个功能可以让开发者更加方便地进行复杂的替换操作。
$string = "Hello world!";
$pattern = "/Hello/";
$result = preg_replace($pattern, function ($match) {
return "Hi";
}, $string);
echo $result; // 输出 "Hi world!"
PHP 7.3 在 preg_replace
函数中添加了 PREG_JIT_STACKLIMIT_ERROR
和 PREG_JIT_STACKLIMIT_WARNING
标志。这两个标志可以帮助开发者更好地了解使用 JIT 引擎时的性能限制。
$pattern = "/[0-9]/";
$string = "123456789";
$result = preg_replace($pattern, "-", $string, -1, $count, PREG_JIT_STACKLIMIT_ERROR);
echo "Replaced {$count} characters with JIT stacklimit error: {$result} \n";
PHP 7.3 提供了两个新的预定义常量 PREG_UNMATCHED_AS_NULL
和 PREG_PATTERN_ORDER_WITH_GROUP
. PREG_UNMATCHED_AS_NULL
允许 preg_match_all
函数将未匹配的组返回为 null,而不是忽略它们。PREG_PATTERN_ORDER_WITH_GROUP
可以让 preg_match_all
函数以组为单位返回匹配项,而不是按照整体匹配返回。
$string = "Hello world!";
$pattern = "/(\w+)\s+(\w+)/";
$result = preg_match_all($pattern, $string, $matches, PREG_PATTERN_ORDER_WITH_GROUP | PREG_UNMATCHED_AS_NULL);
print_r($matches);
以上就是 PHP 7.3 中 preg_replace
函数的一些新特性和规则。通过这些新特性和规则,开发者可以更好地进行正则表达式的处理和使用。