I want to replace
Pretty simple with lookarounds:
See a demo on regex101.com.
You'll need to escape the backslashes as well for
<?php $string = "I want to replace ' with \' but not \' since they are already escaped"; $regex = "~(?<!\\\)'~"; echo preg_replace($regex, "\\'", $string); # Output: I want to replace \' with \' but not \' since they are already escaped ?>
See a demo on ideone.com.