i'm trying to do the following hope there's a reg_ex expert around to shed some light. I need to replace the character [ in my code and make it a {. But there is cases where the [ needs to remain a [ and not change. So the way i figured it is i need to use the
preg_replace("[", "{", $string);
function with a suitable regular expression that will result the [ characters that are not preceded by the escape character to be used lets say . So how can i get to replace this "[" and not this "["?
thanks a lot in advance
You can do this, and it's with a convention call negative lookbehind assertions
Basically, "replace [ with { only when not preceded by \"
For completeness:
There another way to do this if your regexp engine is primitive and doesn't know how to do negative lookbehinds (which is not the case with PHP):
This captures the preceding character, which is restricted to
^
(start) or[^\]
(any non-slash), and passes it through the replace.