需要解析C#文本框以获取令人反感的单词

时间:2014-02-12 14:22:31

标签: c# xml textbox config

我是一个用C#Web表单构建的小型“留言板”类型项目的一部分。我需要解析用户输入的文本以查找令人反感的单词。这是我的第一个C#项目,我不知道如何拆分文本框中的单词。

我要求我创建一个XML配置文件来包含要筛选的单词。理想情况下,我想做一个fark.com样式替换。我从来没有制作过XML配置文件,我真的只需要一个开始的地方。我发现的所有配置文件信息都不是特别适用于这种情况。

编辑:

我最终使用.txt文件并将其拆分为空格,然后在空格上解析文本框并比较单词。项目负责人想要一个配置文件,但我在简单的解决方案上投入了他,我们就去了。谢谢你的回复。

3 个答案:

答案 0 :(得分:1)

XML文件无法很好地扩展,尤其是在并发访问时。你最好使用数据库引擎来完成这样的任务。

答案 1 :(得分:0)

取决于这个“坏词列表”的大小,以及您是否希望它能够改变。

如果它非常静态,我会将XML文件中的列表加载到某种内存中。然后,对于您收到的每一行文本,将该行解析为单词,然后检查每个单词是否存在于该集合中。

如果它会经常更改,并且您需要快速了解这些更改,那么您需要更多随机访问...这意味着数据库。重复访问XML将会拖累性能。

无论哪种方式,拆分字符串并对每次点击做出反应。

可以使用以下内容分割字符串:

myLineOfText.Split(new String[] { " " }, StringSplitOptions.RemoveEmptyEntries);

答案 2 :(得分:0)

制作一个XML配置文件只是为了过滤一堆单词可能不是去那里的最佳方式,考虑到它最有可能只是一个巨大的字符串列表......

如果不是,请查看XmlDocument ClassSystem.Xml namespace我假设您知道XML文档的格式,但如果没有,请here is a simple example。这种格式对你想要的任何XML标签都是开放的,但是我链接到的XmlDocument类确实有一些相当烦人的捕获,你在实现它时会遇到它。

在拆分用户文本方面,在另一个字符串中隐藏“坏”字很容易,所以我不确定String.Split()是否也是你想要的。你可能想要Regex它。

话虽如此,我前段时间遇到this blog post,它为使用Regex的.NET提供了一个简单的亵渎过滤器。也许它会满足你的需求。