随笔-188  评论-965  文章-0  trackbacks-0

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

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

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

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

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

好厉害

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

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

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

专题:iPad jQuery Chrome OS

博客园首页  IT新闻  闪存  学英语
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
网站导航: