我想更换使用PHP只是完整的词
例如:如果我有
$text = "Hello hellol hello, Helloz";
我用
$newtext = str_replace("Hello",'NEW',$text);
新的文本应该像
新hello1你好,Helloz
PHP的回报
新hello1你好,NEWz
谢谢。
我想更换使用PHP只是完整的词
例如:如果我有
$text = "Hello hellol hello, Helloz";
我用
$newtext = str_replace("Hello",'NEW',$text);
新的文本应该像
新hello1你好,Helloz
PHP的回报
新hello1你好,NEWz
谢谢。
你想使用正则表达式。 该\b
匹配一个单词边界。
$text = preg_replace('/\bHello\b/', 'NEW', $text);
如果$text
包含UTF-8文本,你必须添加Unicode修改的“u”,使非拉丁字符不会被误解为单词边界:
$text = preg_replace('/\bHello\b/u', 'NEW', $text);
在串多字的这个替代
$String = 'Team Members are committed to delivering quality service for all buyers and sellers.';
echo $String;
echo "<br>";
$String = preg_replace(array('/\bTeam\b/','/\bfor\b/','/\ball\b/'),array('Our','to','both'),$String);
echo $String;
阵列替换列表:如果您的替换字符串替换对方,你需要preg_replace_callback
。
$pairs = ["one"=>"two", "two"=>"three", "three"=>"one"];
$r = preg_replace_callback(
"/\w+/", # only match whole words
function($m) use ($pairs) {
if (isset($pairs[$m[0]])) { # optional: strtolower
return $pairs[$m[0]];
}
else {
return $m[0]; # keep unreplaced
}
},
$source
);
显然/效率/\w+/
可以用一个密钥列表被替换/\b(one|two|three)\b/i
。
您还可以使用T-至REGx库,该报价$
或\
字符,而更换
<?php
$text = pattern('\bHello\b')->replace($text)->all()->with('NEW');