c# regex 深入正则表达式

c# regex 深入正则表达式

ID:15952559

大小:44.50 KB

页数:6页

时间:2018-08-06

c# regex 深入正则表达式_第1页
c# regex 深入正则表达式_第2页
c# regex 深入正则表达式_第3页
c# regex 深入正则表达式_第4页
c# regex 深入正则表达式_第5页
资源描述:

《c# regex 深入正则表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、正则表达式(Regularexpressions)是一套语法匹配规则,各种语言,如Perl,.Net和Java都有其对应的共享的正则表达式类库。在.Net中,这个类库叫做Regex。简单的说,Regex是从字符窗中查找匹配字符串的应用类。通过Regex,编程人员能够非常方便的从一段数据中提取自己所需要的数据信息。举一个简单的例子,让大家对Regex有个大概的了解:Regexregex=newRegex(@"d+");Matchm=regex.Match("fox9212gold");Console.WriteLine(m.Value.ToString());结果很明显,regex为我们

2、找到了字符串”fox9212gold”中的数字字符串,输出结果为”9212”.对Regex有了一个基本的概念之后,我需要告诉你一个非常好的消息,那就是Regex可以为我们做的远不止这么一点点,他是一套功能非常强大语法匹配规则。当然,这里还有一个坏消息等着我们,那就是强大功能的语法规则自然需要大量纷繁复杂的keyword支持,这也为Regex的学习带来了极大的难度。想要真正掌握正则表达式,可不是几个sample能够全部揭示与说明的。创建一个Regex对象Regex的构造函数有三种,在这里就不讨论默认构造函数了。另外两个构造函数中,一个构造函数接收正则表达式字符串作为入参,另一个以正则表达

3、式字符串和RegexOptions作为入参。如: Regexregex=newRegex("w+$");Regexregex=newRegex("s+",RegexOptions.IgnoreCase

4、RegexOptions.Multiline);RegexOptions可以为我们提供一些特殊的帮助,比如IgnoreCase能够在匹配是忽略大小写,Multiline能够调整^和$的意义,改为匹配一行的开头和结尾。上面我们构造了一个正则表达式,只不过我们还没有用它来做任何事情,马上我们就可以通过使用下面的几个方法,实现对字符串对象的操作了。匹配字符串Regex有两个获取匹配的方法Mat

5、ch()和Matches(),分别代表匹配一个,匹配多个结果。这里就用Matches来展示一下怎么使用Regex获取匹配字符串,并将其显示出来。 publicstaticvoidshowMatches(stringexpression,RegexOptionsoption,stringms){Regexregex=newRegex(expression,option);MatchCollectionmatches=regex.Matches(ms);//showmatchesConsole.WriteLine("////////////////---------------------

6、-------------////////////////");Console.WriteLine("string:"{0}" expression:"{1}" matchresultis:",ms,expression);foreach(Matchminmatches){Console.WriteLine("matchstringis:"{0}",length:{1}",m.Value.ToString(),m.Value.Length);}Console.WriteLine("matchedcount:{0}",matches.Count);}方法Matched通过比较入参字符串和

7、正则表达式,找到所有符合的结果,并将结果作为MatchCollection传出来。这样,只要简单的遍历这个collection,就可以很快的获得所有的结果。组的概念当你获得这样的一个字符串”最后比分是:19/24”,你肯定希望有一个正则表达式,他不单能够找到形如data1/data2的字符串,还应该能够直接把data1,data2作为单独的结果传送出来。否则你需要再对形如”19/24”的字符串进行分析,才能够顺利得到双方的比分。显然,正则表达式不会忽略这个问题,所以他增加了组的概念。你可以把一次搜索的结果分别放入不同的组中,并通过组名或者组的索引分别取得这些组的结果。比如上例,我们就可

8、以用@”(d+)/(d+)”作为表达式。来看看结果吧: Regexregex=newRegex(@"(d+)/(d+)");MatchCollectionmatches=regex.Matches(@"最后比分是:19/24");//showmatchesConsole.WriteLine("////////////////----------------------------------////////////////");foreac

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。