mirror of
https://github.com/php/php-src.git
synced 2026-03-27 01:32:22 +01:00
Named subpatterns are now passed to `mb_ereg_replace_callback`. This commit also adds a subset of the oniguruma back-reference syntax for replacements: * `\k<name>` and `\k'name'` for named subpatterns. * `\k<n>` and `\k'n'` for numbered subpatterns These last two notations allow referencing numbered groups where n > 9.
24 lines
599 B
PHP
24 lines
599 B
PHP
--TEST--
|
|
mb_ereg_replace_callback()
|
|
--SKIPIF--
|
|
<?php
|
|
extension_loaded('mbstring') or die('skip mbstring not available');
|
|
function_exists('mb_ereg_replace_callback') or die("skip mb_ereg_replace_callback() is not available in this build");
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
$str = 'abc 123 #",; $foo';
|
|
|
|
echo mb_ereg_replace_callback('(\S+)', function ($m) {
|
|
return $m[1].'('.strlen($m[1]).')';
|
|
}, $str), "\n";
|
|
|
|
echo mb_ereg_replace_callback('(?<word>\w+) (?<digit>\d+).*', function ($m) {
|
|
return sprintf("%s-%s", $m['digit'], $m['word']);
|
|
}, $str), "\n";
|
|
?>
|
|
--EXPECT--
|
|
abc(3) 123(3) #",;(4) $foo(4)
|
|
123-abc
|
|
|