I’m using PHP’s preg_replace, and trying to transform the string
abcd
into
(a(b(c(d))))
This is the best I’ve got:
preg_replace('/.(?=(.*$))/', '$0($1)', 'abcd');
// a(bcd)b(cd)c(d)d()
Is it even possible with regex?
Edit I’ve just discovered this in the PCRE spec: Replacements are not subject to re-matching, so my original approach isn’t going to work. I wanted to keep it all regex because there’s some more complicated matching logic in my actual use case.
I went with something along the lines of a combination of the above answers: