我有一个单词列表:
string[] BAD_WORDS = { "xxx", "o2o" } // 实际上我的列表有很多,大约100个单词
而我有一些文本(通常很短,最多250个单词),我需要从中删除所有的 BAD_WORDS
。
我已经尝试了这个方法:
foreach (var word in BAD_WORDS)
{
string w = string.Format(" {0} ", word);
if (input.Contains(w))
{
while (input.Contains(w))
{
input = input.Replace(w, " ");
}
}
}
但是,如果文本以不良词语开头或结尾,则不会被删除。 我使用了空格,因此它不会匹配部分单词,例如"oxxx"不应该被删除,因为它不是与不良词汇的完全匹配。
有人可以就此向我提供建议吗?
string w = string.Format(" {0} ", word);
? - Nikhil Agrawalif
是不必要的。最好从while
开始,以避免第一次检查两次。 - Tim S.