Zastąp wiele słów w ciągu z listy słów

mam listę słów:

string[] BAD_WORDS = { "xxx", "o2o" } // My list is actually a lot bigger about 100 words

i mam jakiś tekst (zwykle krótki, maksymalnie 250 słów), który muszę usunąćBAD_WORDS w tym.

próbowałem tego:

    foreach (var word in BAD_WORDS)
    {
        string w = string.Format(" {0} ", word);
        if (input.Contains(w))
        {
            while (input.Contains(w))
            {
                input = input.Replace(w, " ");
            }
        }
    }

ale jeśli tekst zaczyna się lub kończy złym słowem, nie zostanie usunięty. zrobiłem to ze spacjami, więc nie pasuje do częściowych słów, na przykład „oxxx” nie powinno być usuwane, ponieważ nie jest to dokładne dopasowanie do BAD WORDS.

ktoś może mi doradzić w tej sprawie?

questionAnswers(7)

yourAnswerToTheQuestion