str_replace:仅匹配整个单词

tes*_*ing 6 php regex string replace

由于str_replace()在":Name:Name_en"中匹配":Name"两次,我想仅匹配整个单词的结果.我想切换到preg_replace(),因为这个答案.

$str = ":Name :Name_en";
echo $str . chr(10);
$str = preg_replace('/\b' . ':Name' . '\b/i', '"Test"', $str);
echo $str;
Run Code Online (Sandbox Code Playgroud)

但由于冒号,这不起作用.没有替代品.RegExp将如何?

\b是边界这个词.但我认为冒号不属于这样的单词边界.

Eve*_*ert 9

您不需要字符串开头的单词边界:

$str = preg_replace('/:Name\b/i', '"Test"', $str);
Run Code Online (Sandbox Code Playgroud)