《C字符串和正则表达式参考手册》.docVIP

《C字符串和正则表达式参考手册》.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C字符串和正则表达式参考手册》.doc

正则表达式【Regular Expression】 多少年来,许多的编程语言和工具都包含对正则表达式的支持,.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。这就是匹配的字符串了。 字符串的替换   简单字符串的替换非常直观。例如下面的语句: string s = Regex.Replace(abracadabra, abra, zzzz); 它返回字符串zzzzcadzzzz,所有匹配的字符串都被替换成了zzzzz。   现在我们来看一个比较复杂的字符串替换的例子: string s = Regex.Replace( abra , @^\s*(.*?)\s*$, $1); 这个语句返回字符串abra,其前导和后缀的空格都去掉了。   上面的模式对于删除任意字符串中的前导和后续空格都非常有用。在C#中,我们还经常使用字母字符串,在一个字母字符串中,编译程序不把字符“ \” 作为转义字符处理。在使用字符“\”指定转义字符时,@...是非常有用的。另外值得一提的是$1在字符串替换方面的使用,它表明替换字符串只能包含被替换的字符串。 匹配引擎的细节   现在,我们通过一个组结构来理解一个稍微复杂的例子。看下面的例子: string text = abracadabra1abracadabra2abracad

文档评论(0)

xingkongwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档