替换句子中的单词

时间:2012-03-06 10:16:25

标签: php regex preg-replace

我有这样一句话:

Stan, Stanley, Stan!

我想用Peter取代所有的单词“Stan”,以便有类似的东西

Peter, Stanley, Peter!

这是我的问题:斯坦利不能被替换,因为这不是斯坦这个词!

现在我做了类似的事情:

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

但我需要的是一个正则表达式,只匹配一个单词(这意味着我的单词不会立即跟着一个字母)。

我尝试了类似这样的东西/ Stan([^ [A-Za-z])/ i但这个渲染:

Peter Stanley, Peter

缺少一些标点符号

2 个答案:

答案 0 :(得分:7)

您可以使用单词边界(\b);

/\bStan\b/ig

将匹配Stan,但不匹配Stanley

Demo

答案 1 :(得分:4)

\b表示word boundary

这个正则表达式应该有效:

\bStan\b

RegExr Demo