messy messy - 7 months ago 12
PHP Question

Regex for escaping single quotes which are not already escaped

I want to replace

'
with
\'
but not
\'
since they are already escaped.

Jan Jan
Answer

Pretty simple with lookarounds:

(?<!\\)'

See a demo on regex101.com.
You'll need to escape the backslashes as well for PHP:

<?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.

Comments