欢迎来到天天文库
浏览记录
ID:13713280
大小:220.18 KB
页数:50页
时间:2018-07-24
《.net framework 4.0 正则表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正则表达式.NETFramework4.0正则表达式.NETFramework4.0正则表达式1.NETFramework正则表达式概述2正则表达式语言元素6.NETFramework中正则表达式的最佳做法13考虑输入源13适当地处理对象实例化14负责的回溯16只在必要时捕获17正则表达式对象模型19正则表达式引擎19MatchCollection和Match对象22组集合25捕获的组26捕获集合28单个捕获30正则表达式行为的详细信息32正则表达式示例41示例:扫描HREF42示例:更改日期格式44如何:从URL中提取协议和端口号46如何:从字符串中剥离无效字符47如何
2、:验证字符串是否为有效的电子邮件格式4850正则表达式.NETFramework正则表达式概述正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;验证文本以确保它匹配预定义的模式(如电子邮件地址);提取、编辑、替换或删除文本子字符串;将提取的字符串添加到集合以生成报告。对于处理字符串或分析大文本块的许多应用程序而言,正则表达式是不可缺少的工具。正则表达式的工作方式使用正则表达式处理文本的中心构件是正则表达式引擎,该引擎在.NETFramework中由System.Text.RegularExp
3、ressions.Regex对象表示。使用正则表达式处理文本至少要求向该正则表达式引擎提供以下两方面的信息:要在文本中标识的正则表达式模式。在.NETFramework中,正则表达式模式用特殊的语法或语言定义,该语法或语言与Perl5正则表达式兼容,并添加了一些其他功能,例如从右到左匹配。有关更多信息,请参见正则表达式语言元素。要为正则表达式模式分析的文本。Regex类的方法使您可以执行以下操作:通过调用IsMatch方法确定输入文本中是否具有正则表达式模式匹配项。有关使用IsMatch方法验证文本的示例,请参见如何:验证字符串是否为有效的电子邮件格式。通过调用Match
4、或Matches方法检索匹配正则表达式模式的一个或所有文本匹配项。第一个方法返回提供有关匹配文本的信息的Match对象。第二个方法返回MatchCollection对象,该对象对于在分析的文本中找到的每个匹配项包含一个Match对象。通过调用Replace方法替换匹配正则表达式模式的文本。有关使用Replace方法更改日期格式和移除字符串中的无效字符的示例,请参见如何:从字符串中剥离无效字符和示例:更改日期格式。有关正则表达式对象模型的概述,请参见正则表达式对象模型。正则表达式示例String类包括许多字符串搜索和替换方法,当您要在较大字符串中定位文本字符串时,可以使用这
5、些方法。当您希望在较大字符串中定位若干子字符串之一,或者当您希望在字符串中标识模式时,正则表达式最有用,如以下示例所示。示例1:替换子字符串假设一个邮件列表包含一些姓名,这些姓名有时包括称谓(Mr.、Mrs.、Miss或Ms.)以及姓氏和名字。如果您从列表中生成信封标签时不希望包括称谓,则可以使用正则表达式移除称谓,如以下示例所示。ImportsSystem.Text.RegularExpressionsModuleExamplePublicSubMain()DimpatternAsString="(Mr.?
6、Mrs.?
7、Miss
8、Ms.?)"Dimnames()A
9、sString={"Mr.HenryHunt","Ms.SaraSamuels",_"AbrahamAdams","Ms.NicoleNorris"}ForEachnameAsStringInnamesConsole.WriteLine(Regex.Replace(name,pattern,String.Empty))NextEndSubEndModule'Theexampledisplaysthefollowingoutput:50正则表达式'HenryHunt'SaraSamuels'AbrahamAdams'NicoleNorris正则表达式模式(Mr.?
10、Mrs
11、.?
12、Miss
13、Ms.?)matchesanyoccurrenceof"Mr","Mr.","Mrs","Mrs.","Miss","Msor"Ms.".ThecalltotheRegex.ReplacemethodreplacesthematchedstringwithString.Empty;inotherwords,itremovesitfromtheoriginalstring.示例2:标识重复的单词意外地重复单词是编写器常犯的错误。可以使用正则表达式标识重复的单词,如以下示例所示。ImportsSystem.Te
此文档下载收益归作者所有