PHP如何替换字符串中的确切单词

Jul*_*yag 1 php replace

我有这个PHP代码

 $filename = "verbs.php"; //  http://alylores.x10.mx/vega/verbs2.php  
 $handle = fopen($filename, "r");  
 $verbs = fread($handle, filesize($filename));  
 fclose($handle);
Run Code Online (Sandbox Code Playgroud)

我使用PHP explode()函数

将单词拆分为数组

$verbslist = explode(",", $verbs);

我也有一个字符串,如:

$sentence = "Where is Phisz' dog?";

然后我用这个str_replace()函数从句子中删除动词和一些特定的单词,这样唯一的左边就是主语.

$newsentence = str_replace($verbslist,"",$sentence);

但结果是:

new Sentence:Phz' dog?// ison Phisz也被删除了.

并且我发现问题在于Phisz包含的is内容也被删除了str_replace().

我想要的是如何从句子中删除单词/ vebs而不影响其他单词.我的意思是删除EXACT VERB/WORD .....并且在不敏感的情况下......

预期的结果将是这样的

新句子: Phisz' dog?

dec*_*eze 6

使用正则表达式/\bword\b/将仅替换单词作为整体.\b表示单词边界.所以你可以这样做:

foreach ($verblist as &$verb) {
    $verb = '/\b' . preg_quote($verb, '/') . '\b/';
}

$newsentence = preg_replace($verblist, '', $sentence);
Run Code Online (Sandbox Code Playgroud)