检查用户评论中是否有多个额外的字母添加到禁止的单词中



我想过滤一些不好的词,比如'asshole',但你可以通过说'asssssshole'或'asshoooole'来绕过这个词

这是我目前的代码。

string Word = "asshole";
if (Comment.Contains(Word)
//block the comment from being posted

我将如何检查消息中是否有多个额外的字母添加到禁止的单词上,而无需为拼写"混蛋"的每种方式创建数百种不同的规则。

使用声音可能会取得部分成功。 尝试将您的变体放入 https://www.functions-online.com/soundex.html,它们都返回相同的值A240,甚至a*s*h*o*l*e。 不幸的是,它不适用于a$$hole,但您可以在测试之前提出一些简单的替换来运行。

在线找到 C# 实现应该很容易。

用它做一个正则表达式并检查匹配项:

//using System.Text.RegularExpressions;
string word = "asshole";
//add a '+' after each letter to make it find any number of it
string pattern = string.Join("+", word.ToCharArray());
//pattern is "a+s+s+h+o+l+e"
if(Regex.IsMatch(comment, pattern))
{
//do something
}

相关内容

  • 没有找到相关文章

最新更新