随笔-341  评论-2670  文章-0  trackbacks-0

作者(不是我)信息:
华南理工大学软件学院本科07级(现大二)
进入大学前玩过几个星期pascal,高考后的暑假重新学编程

程序信息:点击这里下载
学习C++一年后的作品。
内含所有代码,以及VC++工程文件。
一个程序,输入只有匹配没有捕获的正则表达式,输入被匹配的字符串,输出字符串中符合正则表达式要求的部分。
支持括号改变优先级,[字符集]和[^字符集],少量转义(\d等),循环(+*?),没有捕获

输入输出(红色部分为用户输入的内容):
请输入正则表达式 : /\*([^\*]|\*+[^\*/])*\*+/
请输入所要匹配的字符串 : a//a///*\\nab**abc**//*
a//a//【/*\\nab**abc**/】/*

算法简要:
正则表达式->语法树->ε-NFA->NFA->DFA->连通矩阵。
使用递归向下法判断输入的正则表达式的合法性并转换为树结构,其后转成状态机。
posted on 2008-11-08 06:44 陈梓瀚(vczh) 阅读(4918) 评论(21)  编辑 收藏 引用 所属分类: 其他

评论:
# re: 学生做的正则表达式引擎提供下载! 2008-11-08 07:39 | Xw.Y

好厉害

记得偶当年某个寒假在寝室里花了一个星期才搞定一个类似的程序,
是编译课的大作业
印象中最难搞的是消递归的算法

现在对NFA,DFA这种名词已经完全忘记了……

用空下来看看……回忆一下……  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-08 07:43 | foxtail
的确不是你写的  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载![未登录] 2008-11-08 15:39 | blankyao
不错,能否介绍下算法  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-08 17:31 | 空明流转
@blankyao
楼上的好火星。
你没看过VC同学的经典文章?  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载![未登录] 2008-11-08 22:50 | megax
我对正则略有研究,我对正则的效率非常在意。不过说实话.net里面的正则是我用过的所有正则当中效率最高的,我怀疑里面有池化之类的东西。一直没有求证。作者有时间不妨好好研究。  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-08 22:54 | Jetricy
人气还挺旺的嘛. 这个小程序相当于把数据结构复习一遍的同时做一个正则引擎.不错嘛,呵呵.
自己写的数据结构还是比stl用起来舒服.用stl脑筋生锈不说移植性还是不可恭维.  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-08 22:56 | Jetricy
to megax:
作者对.net的正则引擎有了不少的研究了,这点我都可以证实,两者效率不相上下啦.这个曾经是作者很高兴的一件事情  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-09 02:36 | 王博炜
proc 开源的正则表达式库  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-09 08:15 | CY
写得比我好,佩服  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-09 21:03 | E剑仙
实在惭愧……  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载![未登录] 2008-11-10 04:55 | Kevin Lynx
@Jetricy
作为一个STL USER,我还是要捍卫下STL的质量。
  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-10 21:20 | 陈梓瀚(vczh)
捍卫是没有意义的事情。STL只是一个接口的标准。  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-13 05:08 | Lnn
楼主强,有高徒了!  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2008-11-23 20:03 |
真的假的,才学C++一年就有这么大的功力! 强人!  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-03-25 00:57 | 林林
看了一下源码,作者对有穷自动机理论理解得很不错,而且遵循了教科书实现自动机的标准步骤,这部分对于初学者很有帮助。也很难得!
可惜的是,在实现的代码上不敢恭维。特别是图存储算法的实现这部分!代码结构太不清晰,本来应该可以实现得很简单清晰的图算法,被作者绕来绕去,根本没有必要用模板的地方乱用模板!是本作的一大败笔!  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-03-25 03:08 | 陈梓瀚(vczh)
@林林
嘛,她当时才大约1年程序经验,能做到这样不错了。  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-03-25 16:34 | 林林
@陈梓瀚(vczh)
她? 真是她的话,就厉害了!,不知道她现在已经进步到什么地步了,有blog吗?  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-03-25 16:46 | 林林
请教陈兄一个问题,我最近才开始用vc2008,发现vc6.0下用得好好的uml 反工程到visio的选项怎么都调不出来,不知道您知不知道?  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-05-20 18:54 | CmdMac
他们初中一起学习的,都是我们的超超牛人.  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2009-11-03 06:34 | hlysh
真是汗颜....唉,牛人到处都是  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2011-12-31 07:54 | wind
看了下代码,其中核心部分和codeproject上一个2004年老外写的demo相似度90%,这就是为什么中国的程序员叫码农了。  回复  更多评论
  
# re: 学生做的正则表达式引擎提供下载! 2012-04-04 00:03 | Zblc(邱震钰)

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理