仓酷云

标题: ASP.NET网页设计关于脏字典过滤成绩-用正则表达式来过滤脏数据仓酷云 [打印本页]

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

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

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


publicboolValidGeneral(stringstr)
[attach]292759[/attach][attach]292760[/attach]{

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

while(sLine!=null)
[attach]292761[/attach][attach]292762[/attach]{
sLine=objReader.ReadLine();
if(sLine!=null)
arrText.Add(sLine);

}
objReader.Close();


foreach(stringsOutputinarrText)
[attach]292761[/attach][attach]292762[/attach]{
string[]strArr=sOutput.Split(|);

for(inti=0;i<strArr.Length;i++)
[attach]292761[/attach][attach]292762[/attach]{
if(str.IndexOf(strArr)!=-1)
[attach]292761[/attach][attach]292762[/attach]{
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
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
作者: 再现理想    时间: 2015-1-24 15:46
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: 变相怪杰    时间: 2015-1-26 17:17
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
作者: 老尸    时间: 2015-2-3 06:06
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
作者: 若天明    时间: 2015-2-4 21:37
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
作者: 爱飞    时间: 2015-2-7 09:24
逐步缩小出错代码段的范围,最终确定错误代码的位置。
作者: 不帅    时间: 2015-2-20 22:12
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
作者: 海妖    时间: 2015-3-6 18:44
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
作者: 再见西城    时间: 2015-3-8 22:20
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
作者: 兰色精灵    时间: 2015-3-9 22:14
逐步缩小出错代码段的范围,最终确定错误代码的位置。
作者: 仓酷云    时间: 2015-3-17 02:09
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 小魔女    时间: 2015-3-23 14:07
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2