在C#中解析“坏”字的字符串的最佳方法是什么?

我想的是:

foreach (var word in paragraph.split(' ')) {
  if (badWordArray.Contains(word) {
    // do something about it
  }
}

但我相信有更好的方法.

提前致谢!

UPDATE
我不打算自动删除猥亵…对于我的网络应用程序,如果使用我认为“坏”的单词,我希望收到通知.然后我会自己检查以确保它是合法的.一种自动标记系统.

最佳答案
虽然你的方式有效,但可能需要花费一些时间.之前的SO问题有一个wonderful response here.虽然问题是谈论PHP而不是C#,但我认为它可以轻松移植.

编辑以添加示例代码:

public string FilterWords(string inputWords) {
    Regex wordFilter = new Regex("(puppies|kittens|dolphins|crabs)");
    return wordFilter.Replace(inputWords, "<3");
}

这应该或多或少对你有用.

编辑以回答OP澄清:

I’m not looking to remove obscenities automatically… for my web app, I want to be notified if a word I deem “bad” is used.

就像上面的替换部分一样,你可以看到是否有类似的东西:

public bool HasBadWords(string inputWords) {
    Regex wordFilter = new Regex("(puppies|kittens|dolphins|crabs)");
    return wordFilter.IsMatch(inputWords);
}

如果传递给它的字符串包含列表中的任何单词,它将返回true.

转载注明原文:在C#中解析“坏”字的字符串的最佳方法是什么? - 代码日志