regex para substituir uma determinada palavra com espaço em ambos os lados ou não em todos

Eu estou trabalhando com algum código em PHP que pega os dados do referenciador de um mecanismo de pesquisa, me dando a consulta que o usuário inseriu.

Eu gostaria de remover certas palavras de parada dessa string se elas existirem. No entanto, a palavra pode ou não ter um espaço em cada extremidade.

Por exemplo, tenho usado o str_replace para remover uma palavra da seguinte forma:

$keywords = str_replace("for", "", $keywords);
$keywords = str_replace("sale", "", $keywords);

mas se o valor $ keywords for "baby formula", ele mudará para "baby mula" - removendo a parte "for".

Sem ter que criar mais str_replace que conta para "para" e "para" - existe um comando de tipo preg_replace que eu poderia usar que removeria a palavra dada se for encontrado com um espaço em cada extremidade?

Minha idéia seria colocar todas as palavras de parada em um array e passar por elas dessa forma e eu suspeito que um preg_replace será mais rápido do que percorrer várias linhas str_replace.

ATUALIZAR: Resolvido graças a vocês usando a seguinte combinação:

$keywords = "...";
$stopwords = array("for","each");
foreach($stopwords as $stopWord)
{
    $keywords = preg_replace("/(\b)$stopWord(\b)/", "", $keywords);   
}

questionAnswers(4)

yourAnswerToTheQuestion