当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 作者:刘彦青 多少年来,许多的编程语言和工具都包含对正则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容。
 

 

 ·longhorn的sidebar会有人用吗?    »显示摘要«
    摘要:今天看到新闻说longhorn sidebar 4.0 released 发布,说这是一个超实用的工具条一直不太明白,只要启动了sidebar,其它窗口就会被压缩掉一部分本来屏幕就嫌不够大,还有个东西始终在边上占着视线简直是个不实用的东西,要不就是我太古老了反正我觉得即使是装了longhorn,第一步也是把这个sidebar去掉这个功能,就好比xp里面的taskbar的similar button......
 ·hibernate配置顿悟.    »显示摘要«
    摘要:一直没明白为什么hibernate的配置文件有两个, 一个properties,一个xml. 呵呵..偶才学了一个星期不要笑我....properties 是模版型配置, 可以配置一些用xml写起来麻烦的东西, 比如连接池,事务等..xml的配置是在前面配置的基础上的再配置, 偶觉得主要是配一些 mapping文件..在源码里, configuration cfg = new configurat......


解读C#中的正则表达式
 

作者:刘彦青  

【程序编程相关:捕捉DataGrid的双击事件(C#版本

    多少年来,许多的编程语言与工具都包含对正则表达式的支持,.net基础类库中包含有一个名字空间与一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的perl 5中的规则表达式兼容. 【推荐阅读:新开窗口延迟打开

【扩展信息:一个奇怪的问题:为什么我不能交换字母

  

  此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式与表达式的编辑等.

  

  在这篇文章中,我将简要地介绍system.text.regularexpression中的类与方法.一些字符串匹配与替换的例子以及组结构的详细情况,最后,还会介绍一些你可能会用到的常见的表达式.

  

应该掌握的基础知识

  规则表达式的知识可能是不少编程人员“常学常忘”的知识之一.在这篇文章中,我们将假定你已经掌握了规则表达式的用法,尤其是perl 5中表达式的用法..net的regexp类是perl 5中表达式的一个超集,因此,从理论上说它将作为一个很好的起点.我们还假设你具有了c#的语法与.net架构的基本知识.

  

  如果你没有规则表达式方面的知识,我建议你从perl 5的语法着手开始学习.在规则表达式方面的权威书籍是由杰弗里·弗雷德尔编写的«掌握表达式»一书,对于希望深刻理解表达式的读者,我们强烈建议阅读这本书.

  

regularexpression组合体

  regexp规则类包含在system.text.regularexpressions.dll文件中,在对应用软件进行编译时你必须引用这个文件,例如:

csc r:system.text.regularexpressions.dll foo.cs

命令将创建foo.exe文件,它就引用了system.text.regularexpressions文件.

  

名字空间简介

  在名字空间中仅仅包含着6个类与一个定义,它们是:

  

  capture: 包含一次匹配的结果;

  capturecollection: capture的序列;

  group: 一次组记录的结果,由capture继承而来;

  match: 一次表达式的匹配结果,由group继承而来;

  matchcollection: match的一个序列;

  matchevaluator: 执行替换操作时使用的代理;

  regex: 编译后的表达式的实例.

  regex类中还包含一些静态的方法:

  escape: 对字符串中的regex中的转义符进行转义;

  ismatch: 如果表达式在字符串中匹配,该方法返回一个布尔值;

  match: 返回match的实例;

  matches: 返回一系列的match的方法;

  replace: 用替换字符串替换匹配的表达式;

  split: 返回一系列由表达式决定的字符串;

  unescape:不对字符串中的转义字符转义.

  

简单匹配

  我们首先从使用regex.match类的简单表达式开始学习.

  

match m = regex.match("abracadabra", "(a|b|r)+");

  

我们现在有了一个可以用于测试的match类的实例,例如:if (m.success)...

如果想使用匹配的字符串,可以把它转换成一个字符串:

  

console.writeline("match="+m.tostring());

  

这个例子可以得到如下的输出: match=abra.这就是匹配的字符串了.

  

字符串的替换

  简单字符串的替换非常直观.例如下面的语句:

  


...   下一页
    摘要:dap2.0即将推出!dap的概念是指企业能根据实时的变化的应用来迅速地构建信息系统,一般这个周期在1-2周,包括需求分析,数据结构分析,用户界面设计及编码。按照常规的系统设计,很难迅速地达到企业对信息系统的构建速度,因为还有很多底层的或者通用的技术内容需要实现,比如企业需要internet支持,或者需要简便的用户管理,甚至为了降低维护成本而需要自动更新模块等等。为此,dap2.0已经构筑了底层及......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE