如何使用PHP替换所有单词实例(最好使用正则表达式)。这可能听起来非常简单,但它们必须是文字。例如,如果我想替换字符串foo
中的单词My foot has been hurting all day, get me some food so I can write some foo.
,我不希望找到单词foot
和food
的前三个字符,因为它们是与foo
一词分开的实体。
因此,正则表达式必须以某种方式允许被搜索的实体与所有其他实体分开。因此,如果它被白色空间包围,开始字符串,或者结束字符串,那么它就是一个单词。
我是使用正则表达式的新手。所以你的帮助很大。
答案 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)|$)