wyrażenie regularne zastępujące dane słowo spacją po obu stronach lub wcale
Pracuję z jakimś kodem w PHP, który przechwytuje dane odsyłające z wyszukiwarki, dając mi zapytanie, które wprowadził użytkownik.
Chciałbym wtedy usunąć pewne słowa stop z tego ciągu, jeśli istnieją. Jednak słowo może mieć lub nie mieć spacji na obu końcach.
Na przykład używam str_replace, aby usunąć słowo w następujący sposób:
$keywords = str_replace("for", "", $keywords);
$keywords = str_replace("sale", "", $keywords);
ale jeśli wartość słowa kluczowego $ jest „formułą niemowlęcą”, zmieni ją na „baby mula” - usuwając część „for”.
Bez konieczności tworzenia kolejnego konta str_replace dla „for” i „for” - czy istnieje polecenie typu preg_replace, którego można użyć, aby usunąć dane słowo, jeśli zostanie znalezione ze spacją na każdym końcu?
Moim pomysłem byłoby umieszczenie wszystkich słów zatrzymania w tablicy i przejście przez nie w ten sposób i podejrzewam, że miejsce preg_replace będzie szybsze niż przechodzenie przez wiele linii str_replace.
AKTUALIZACJA: Rozwiązane dzięki wam, którzy korzystali z następującej kombinacji:
$keywords = "...";
$stopwords = array("for","each");
foreach($stopwords as $stopWord)
{
$keywords = preg_replace("/(\b)$stopWord(\b)/", "", $keywords);
}