如果前面没有反斜杠,则替换字符


Replacing a character if not preceeded by backslash

假设您在PHP中有一个字符串

$string = 'Hello 'world, how a're you?';

如果w和r前面没有反斜杠,我想替换它们。我认为preg_replace是最好的方法,但我对regex的理解还不够:

$newString=preg_replace(array('/????/','/?,??/'),array('!','!'),$string);

如果它像我希望的那样工作,输出应该是

echo$newString;//输出:'你好''wo!ld,ho!a你是吗

谢谢你在这方面的帮助。

您可以使用负向后看:

preg_replace('/(?<!'''')[wr]/', '!', $string);

您可以对此使用负向后看:

/(?<!'')[wr]/

如代码所示:

preg_replace('/(?<!'''')[wr]/', '!', $string);