PHP - 如何替换字符串中的所有单词实例

时间:2014-02-24 19:44:53

标签: php regex string

如何使用PHP替换所有单词实例(最好使用正则表达式)。这可能听起来非常简单,但它们必须是文字。例如,如果我想替换字符串foo中的单词My foot has been hurting all day, get me some food so I can write some foo.,我不希望找到单词footfood的前三个字符,因为它们是与foo一词分开的实体。

因此,正则表达式必须以某种方式允许被搜索的实体与所有其他实体分开。因此,如果它被白色空间包围,开始字符串,或者结束字符串,那么它就是一个单词。

我是使用正则表达式的新手。所以你的帮助很大。

2 个答案:

答案 0 :(得分:5)

使用word boundaries\b)。它是一个零长度匹配,匹配单词字符(\w)和非单词字符(\W)之间的位置。

$search = 'foo';
echo preg_replace('/\b'.preg_quote($search).'\b/', '', $str);

这将输出:

My foot has been hurting all day, get me some food so I can write some .

答案 1 :(得分:-2)

正则表达式很简单。不要使用过度使用的单词边界\ b。

(?:^|(?<=\s))foo(?:(?=\s)|$)