仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1085|回复: 12
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计关于脏字典过滤成绩-用正则表达式来过滤脏数据仓酷云

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!办法一:利用正则表达式
1 //脏字典数据寄存文件路径
2privatestaticstringFILE_NAME="zang.txt";
3//脏数据字典表,如:脏数据一|脏数据二|脏数据三
4publicstaticstringdirtyStr="";
5
6publicValidDirty()
7 {
8 if(HttpRuntime.Cache["Regex"]==null)
9 {
10dirtyStr=ReadDic();
11//用于检测脏字典的正则表达式
12RegexvalidateReg=newRegex("^((?!"+dirtyStr+").(?<!"+dirtyStr+"))*$",RegexOptions.Compiled|RegexOptions.ExplicitCapture);
13HttpRuntime.Cache.Insert("Regex",validateReg,null,DateTime.Now.AddMinutes(20),TimeSpan.Zero);
14 }
15
16 }
17privatestringReadDic()
18{
19FILE_NAME=Environment.CurrentDirectory+""+FILE_NAME;
20
21if(!File.Exists(FILE_NAME))
22{
23Console.WriteLine("{0}doesnotexist.",FILE_NAME);
24return"";
25}
26StreamReadersr=File.OpenText(FILE_NAME);
27Stringinput="";
28while(sr.Peek()>-1)
29{
30input+=sr.ReadLine();
31}
32
33sr.Close();
34returninput;
35
36}
37
38
39publicboolValidByReg(stringstr)
40{
41Regexreg=(Regex)HttpRuntime.Cache["Regex"];
42returnreg.IsMatch(str);
43
44}

感到这类办法的实行效力不是很高,复杂的测试了一下1000字的文章,脏字典有800多个关头字
式了一下是1.238秒,人人有无更好的办法,请不惜见教!

办法二:一般轮回查找办法


publicboolValidGeneral(stringstr)
{

if(!File.Exists(FILE_NAME))
{
Console.WriteLine("文件路径大概文件路径不存在毛病信息");
returnfalse;
}
else
{
StreamReaderobjReader=newStreamReader(FILE_NAME,System.Text.Encoding.GetEncoding("gb2312"));
stringsLine="";
ArrayListarrText=newArrayList();

while(sLine!=null)
{
sLine=objReader.ReadLine();
if(sLine!=null)
arrText.Add(sLine);

}
objReader.Close();


foreach(stringsOutputinarrText)
{
string[]strArr=sOutput.Split(|);

for(inti=0;i<strArr.Length;i++)
{
if(str.IndexOf(strArr)!=-1)
{
returnfalse;
}

}

}
returntrue;

}

}以下是测试的办法,有甚么成绩还人人请指出!
1DateTimet1=DateTime.Now;
2stringstr="213";
3str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
4str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
5str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
6str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
7str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
8str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
9str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
10str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
11str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
12str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
13str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
14str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
15str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
16str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
17str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
18str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
19str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
20str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
21str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
22str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
23str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
24str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
25str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
26str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
27str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
28str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
29str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
30str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
31str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
32str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
33str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
34str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
35str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
36str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
37str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
38str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
39str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
40str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
41str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
42str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
43str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
44str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
45str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
46str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
47str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
48str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
49str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
50str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
51str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
52str+="爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋爱惜水晶之恋";
53ValidDirtyvd=newValidDirty();
54Console.WriteLine(vd.ValidByReg(str));
55DateTimet2=DateTime.Now;
56TimeSpants=t2-t1;
57Console.WriteLine(ts.TotalMilliseconds);
58Console.Read();
算法

检索文本文件长度/泯灭工夫(ms)

正则算法

10个汉字/980
100个汉字/999
1000个汉字/1234
一般算法

10个汉字/234
100个汉字/234
1000个汉字/265


脏字典下载
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-20 14:00:05 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
再现理想 该用户已被删除
板凳
发表于 2015-1-24 15:46:01 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
变相怪杰 该用户已被删除
地板
发表于 2015-1-26 17:17:21 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
老尸 该用户已被删除
5#
发表于 2015-2-3 06:06:48 来自手机 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
若天明 该用户已被删除
6#
发表于 2015-2-4 21:37:08 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
爱飞 该用户已被删除
7#
发表于 2015-2-7 09:24:08 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
不帅 该用户已被删除
8#
发表于 2015-2-20 22:12:48 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
海妖 该用户已被删除
9#
发表于 2015-3-6 18:44:59 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
再见西城 该用户已被删除
10#
 楼主| 发表于 2015-3-8 22:20:25 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
兰色精灵 该用户已被删除
11#
发表于 2015-3-9 22:14:31 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
12#
发表于 2015-3-17 02:09:26 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
小魔女 该用户已被删除
13#
发表于 2015-3-23 14:07:58 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-14 01:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表