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='{45} == {2}->val() - {5}->val()';
// apply regex to $code
echo $code;
// writes: test(45) == test(2)->val() - test(5)->val()
The tricky part is that it needs to be done in the best manner possible concerning speed and memory use.
The missing line is this:
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.