2010-09-18 114 views
1

我想在PHP中preg_replace“Word”。preg_replace在句子中的“单词”和“单词”。在句子结尾

$ret = 'I gave my Word to you.';  
    $pattern = '/\bWord\b/i'; 
    $ret = preg_replace($pattern,"Heart",$ret); 
// echo $ret; = "I gave my Heart to you"; 

该工作到目前为止。但如果这句话是“我给了你我的话语。”或者“我给你我的话!”它不会改变“Word”。进入“心脏”。

+3

[Works fine](http://www.ideone.com/lAiI7)。 – kennytm 2010-09-18 11:05:01

+0

如果这是一个简单的替换,'str_replace'可能比正则表达式快。 – Fanis 2010-09-18 11:11:24

+1

@Fanis:'str_replace'不会检测单词边界。 – kennytm 2010-09-18 11:18:33

回答

3

不知道是什么问题。为我工作。

<? 
    $ret = 'I gave my Word to you Word.'; 
    $pattern = '/\bWord\b/i'; 
    $ret = preg_replace($pattern,"Heart",$ret); 
    var_dump($ret); 
?> 

字符串(29) “我把我的心给你的心。”

+2

要添加到此,\ b单词边界与[a-zA-Z0-9_]个字符匹配单词。 – Ollie 2010-09-18 11:16:50

+0

嗯,当我把它放在一个单一的PHP文件,它的工作原理,在我的其他代码没有。也许问题出现在其他一些代码中。感谢迄今为止睁开我的眼睛 – kalimero 2010-09-18 11:55:38