I need to replace \"{Z}\" with \"test(Z)\" where Z is always an unsigned integer using PHP and regular expressions (unless there\'s a faster way?).
$code=\'{
$code = preg_replace('/\{(\d+)\}/', 'test($1)', $code);
In my experience, preg_replace
is much faster than any method of doing replacements using str_replace
or strtr
.
The missing line is this:
$code = preg_replace('/{([0-9]+)}/', 'test($1)', $code);
How it works:
{ match a literal { ( start a capturing group [0-9]+ one or more digits in 0-9 ) end the capturing group } match a literal }
The $1 in the replacement string refers to the string captured by the first (and only) capturing group.