资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何理解C#.NETregexp类

本篇内容介绍了“如何理解C#.NET regexp类”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

专注于为中小企业提供成都做网站、成都网站制作、成都外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业合浦免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

C#.NET还是比较常见的东西,这里我们主要介绍C#.NET regexp类,包括介绍基于过程和基于表达式方法的比较等方面。

多少年来,许多的编程语言和工具都包含对规则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容。

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

在这篇文章中,我将简要地介绍System.Text.RegularExpression中的类和方法、一些字符串匹配和替换的例子以及组结构的详细情况,***,还会介绍一些你可能会用到的常见的表达式。

应该掌握的基础知识

规则表达式的知识可能是不少编程人员“常学常忘”的知识之一。在这篇文章中,我们将假定你已经掌握了规则表达式的用法,尤其是Perl 5中表达式的用法。C#.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文件。

基于过程和基于表达式方法的比较

一般情况下,使用规则表达式的用户可以分为以下二大类:***类用户尽量不使用规则表达式,而是使用过程来执行一些需要重复的操作;第二类用户则充分利用规则表达式处理引擎的功能和威力,而尽可能少地使用过程。

对于我们大多数用户而言,***的方案莫过于二者兼而用之了。我希望这篇文章能够说明C#.NET regexp类的作用以及它在性能和复杂性之间的优、劣点。

基于过程的模式

我们在编程中经常需要用到的一个功能是对字符串中的一部分进行匹配或其他一些对字符串处理,下面是一个对字符串中的单词进行匹配的例子:

string text = "the quick red fox jumped over the lazy brown dog.";  System.Console.WriteLine("text=[" + text + "]");  string result = "";  string pattern = @"\w+|\W+";  foreach (Match m in Regex.Matches(text, pattern))  {  // 取得匹配的字符串  string x = m.ToString();  // 如果***个字符是小写  if (char.IsLower(x[0]))  // 变成大写  x = char.ToUpper(x[0]) + x.Substring(1, x.Length-1);  // 收集所有的字符  result += x;  }  System.Console.WriteLine("result=[" + result + "]");

“如何理解C#.NET regexp类”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网页标题:如何理解C#.NETregexp类
浏览路径:http://www.cdkjz.cn/article/pdoodh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220