Не совсем то, что вы ищете, но может помочь:
Замените xxx
на yyy
тогда и только тогда, когда xxx
окружен пробелами или если он находится в началеконец строки.
<?
$name = "xxx";
$text = "xxx my name is xxx en my website xxx is http://xxx.something.com xxx";
$text = preg_replace("%(?<=^| )".$name."(?= |$)%i", "yyy", $text);
echo $text."\n";
//yyy my name is yyy en my website yyy is http://xxx.something.com yyy
?>
Было бы проще, если бы PHP поддерживал переменную длину, просматривая утверждения;потому что тогда мы могли бы использовать более точный (?<!http://[^ ]+)\bxxx\b