2012-03-06 79 views
4

我有這樣的句子:在一個句子替換詞

Stan, Stanley, Stan! 

我想換成由彼得所有單詞「斯坦」有類似的東西

Peter, Stanley, Peter! 

這裏是我的問題:不能更換斯坦利,因爲這不是斯坦!

現在我做這樣的事情:

$txt = preg_replace(array('/Stan/i', '/Jack/i'), array('Peter', 'Jennifer'), $txt); 

,但我需要的是一個正則表達式匹配只有一個字(至極意味着我的話是不是立刻後跟一個字母)。

我已經試過這樣的事情/斯坦([^ [A-ZA-Z])/我在這件渲染:

Peter Stanley, Peter 

部分標點符號缺失

+1

也許這個職位可以幫忙嗎? http://stackoverflow.com/questions/6566176/strip-a-word-when-is-a-single-word-only-not-part-of-a-composite-word – 2012-03-06 10:19:28

回答

7

你可以使用這個單詞邊界(\b);

/\bStan\b/ig 

將匹配Stan,但不Stanley

Demo