正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。正则表达式是一种处理文本的有用工具,无论是验证用户输入、搜索字符串内的模式、还是以各种有效方式重新设置文本格式,正则表达式都非常有用。
    大家都知道ASP.NET中有个RegularExpressionValidator的校验控件,其中有一个属性就是要填充自己所写的正则表达式,以作为校验的标准。
    我向大家推荐的这个国外网站,收集了来自世界各地编程者提供的正则表达式,可以分类查询,对于每一个针对一类的正则表达式,有Title,Expression,Description,Matches,Non-Matches,还有用户使用评级。特别方便。我所做的项目用到正则表达式时一般都到这里来查看一下。

网址是 http://regexlib.com/
http://www.regexlab.com/zh/articles.htm

可以做个正则规则网站:随便输入一个满足你要求的例子,会列出所有符合正则表达式,分语言、可测试、可评论留言的网站

与正则表达式相关的几个小工具

推荐三个,理由如下
第一个,REGEX
这个工具优点是中文的,提供了一些示例
 
第二个,REGEXBUDDY
官方网站:http://www.regexbuddy.com/
这是一个真正专业的REGEX生产工具,应该说,他是不错的REGEX开发工具,提供了完美的REGEX表达式生产环境
语法高亮
以元件的形式插入各种正则表达式元素
支持以库的形式收集管理正则表达式
支持测试和分隔
支持各种预定义的各种语言中正则表达式函数的生成(很牛)
 
第三个叫做The Regulator,这个工具是用C#做的
它提供了正则表达式库管理功能
可以在线更新正则表达式库
可以在REGEXLIB.COM上搜索需要的正则表达式
值得一提的是,它不光可以产生C#/VB.NET的正则表达式函数
还可以将代码直接编译成DLL组件
另外,可以将你制作的正则表达式提交到REGEXLIB.COM这个网站与人共享呢
 

RegExBuddy下载
正则表达式生成超级工具The Regulator和Expresso
时间:2006-09-03 14:47:52   类别:软件收藏   RSS 2.0   引用  

正则表达式的概念和作用就不多说了。正则表达式不好写(不好想),所以有很多工具来帮助我们写正则表达式,The Regulator 就是其中的佼佼者(被列入MSDN上的知名文章《Ten Must-Have Tools Every Developer Should Download Now》)。 The Regulator官方网站http://royo.is-a-geek.com/iserializable/regulator/。最新版本为2.0.3。本文对The Regulator 的使用作一个简单介绍。

 
The Regulator窗口主要分为六部分:Web Search、Regex Analyzer、SnippetsControl、表达式输入区、Match结果区、待解析文本区。比较重要的是Regex Analyzer、表达式输入区、Match结果区、待解析文本区。在默认情况下,Web Search区占了很大位置,可能需要调整一下。

基本用法:在表达式输入区、待解析文本区 输入你心目中的表达式和待解析文本,然后点菜单栏中的Match,结果会显示在Match结果区。

如果你想弄清楚一个正则表达式的意思,可以利用Regex Analyzer(在View菜单),不过该功能有时候无法解析出结果,此时可以把表达式输入区 或者待解析文本区 中的内容稍微改一下(比如添加一个空格),或许就可以解析出正确的结果了。比如我输入 \d{2}-\d{5} ,会解析出 Any digit Exactly 2 times - Any digit Exactly 5 times 。可以帮助我们理解一个复杂的正则表达式。
其他有用的功能:生成代码(C# or VB.NET)、直接编译成DLL、从网站检索现成的正则表达式 (Web Search)、保存常用的表达式(SnippetsControl)等等 。

说到正则表达式,还有一个工具很有名气:Expresso http://www.ultrapico.com/。这个工具在codeproject上有详细介绍,出品时间也比The Regulator早。The Regulator的作者也受到了Expresso 的影响,才开发的The Regulator。他在The Regulator的帮助文件中说:"The Original idea for The Regulator came from a simple Regex Tester called "Expresso". It was simple and easy to use (to a certain degree), but it mainly prompted the idea in me that I could build something similar with features that I wished I had.
So thanks, Expresso. Couldn't have done this one without ya! "

 

 

posted @ 2008-06-04 03:16  winnerlan  阅读(270)  评论(0编辑  收藏  举报