用正则表达式的观点看待.NET编程设计
用正则表达式的观点看待编程设计
前言:正则表达式不仅仅只是用来验证的工具,对正则表达式式的误解就像我们在ajax出现之前只是把javascript看成一种"可有可无的,装饰型"的语种. 其实正则
表达充斥着我们的编程世界,从最底层的编译器的编译解析,到上层的字符串处理,都是正则表达式.我们重视它吧!
以前我也只是认为正则表达式这是一种验证的工具,或者处理一些字符串文本,所以对它学习的也不深,直到我开发一个论坛,类似Discuz!NT那样的论坛时,我才重视
正则表达式.特别是在从后台生成静态页面,和模板的时候,没有正则表达式几乎就不行.
在我的ASP.NET控件开发系列中有文章提过:我们把aspx页面提交后,编译器其实就是把那些标记,如:<asp:button......./>,用正则表达式模式来解析整个页面
的,例如,看见<asp:Button id="btn1"/>,就把它解析为一个Button类,然后整个充满标记的aspx页面,就被解析为了一个类(以.cs结尾的类).
还有例子就是:我们在给别人回复email的时候,我们总可以看见我们要写的回复邮件的标题,地址,以及一些正文都有系统生成好了.
上面只是说明正则表达式重要的例子,大家想想,我们写的程序,说白了就是一大堆的字符串文本,程序的编译,实际上就是根据相应的规则处理我们程序文本的过
程,编译器在底层就是在用正则表达式分析我们的程序.也许大家认为我说这些没有作用,因为编译器的怎么干,不关我们什么事,但是明白了正则表达的作用以及机制之
后,起码可以使得我们对编程更加的顺心.
所以在开发网站,比如论坛,CMS的时候,不把那些页面看的很神秘,其实就是一堆字符串,也许这样想,我们开发开心一点.
学习正则表达式,不仅仅只是学会几个其中的几个元字符就OK了的.如,我们都知道*,?,/s,/w等的意义.也能看懂很多的正则表达式.但是我们能够掌握正则表达式的
机制,随心写出自己想要的,高效匹配的正则表达式吗?为什么有分组的,捕获,正则表达式引擎是怎样回溯的?(要知道一些编译原理的知识)
在下面的内容中,我讲把.NET中有关正则表达式的常用类和方法讲下(C#描述),希望大家之前对正则表达式了解,如果想深入理解正则表达式,我给大家推荐本书"精通正则表达式".
讲解的内容如下:
1.快速入门
2.核心对象详解
在.NET中使用 正则表达式要导入
1.快速入门
1.1在字符串中查找匹配:
1.2匹配,并且获得匹配的文本:
1.3匹配,并且获得捕获文本
当然,还有使用命名的捕获:如下:
1.4.查找,替换
例如:我们一个字符串中的所有a转换为b
快速入门就说到这里,也不知道大家的想法,如果大家让我说说 2.核心对象详解 ,可以留个言,交流下,因为我觉得没有基本看这些文章.可以不是很好理解,如果大家不爱看,我写出来也没有意义了!