正则表达式用于转义尚未转义的单引号

I want to replace ' with \' but not \' since they are already escaped.

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.