用正则表达式的观点看待.NET编程设计

来源:互联网 发布:英语四六级真题软件 编辑:程序博客网 时间:2024/06/05 00:32

                                                               用正则表达式的观点看待编程设计                                                                       

 

     前言:正则表达式不仅仅只是用来验证的工具,对正则表达式式的误解就像我们在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中使用 正则表达式要导入

 

Code

 

     1.快速入门     

     1.1在字符串中查找匹配:          

    

Code

 

     1.2匹配,并且获得匹配的文本:

 

Code

 

     1.3匹配,并且获得捕获文本

     

Code

     

     当然,还有使用命名的捕获:如下:

     

Code

 

    1.4.查找,替换

     例如:我们一个字符串中的所有a转换为b

     

 

Code

 

     快速入门就说到这里,也不知道大家的想法,如果大家让我说说  2.核心对象详解    ,可以留个言,交流下,因为我觉得没有基本看这些文章.可以不是很好理解,如果大家不爱看,我写出来也没有意义了!