1

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

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

如果前面没有反斜杠,我想替换所有 w 和 r 。我认为 preg_replace 是要走的路,但我对正则表达式的了解不足以使这项工作:

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

如果它按我的意愿工作,输出应该是

回声 $newString; // 输出:'Hello \wo!ld, ho! 你是?'

感谢您对此的帮助。

4

2 回答 2

4

您可以使用负面回顾:

preg_replace('/(?<!\\\\)[wr]/', '!', $string);
于 2013-06-30T21:30:10.990 回答
3

您可以为此使用负面的后视:

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

如代码中所示:

preg_replace('/(?<!\\\\)[wr]/', '!', $string);
于 2013-06-30T21:30:29.867 回答