VB.NET正则表达式如何简化程序代码
小编给大家分享一下VB.NET正则表达式如何简化程序代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1、VB.NET正则表达式处理类
在VB.NET正则表达式必须先引入命名空间System.Text.RegularExpressions,该命名空间包含一下七个类:Regex、Match、MatchCollection、GroupCollection、CaptureCollection、Group、Capture。
Regex类表示不可变(只读)正则表达式类,设置待匹配字符串的模式。Match 类表示正则表达式匹配操作的结果。MatchCollection 类表示成功的非重叠匹配的序列,即匹配后得到的字符串集合。在正则表达式中应用最多的就是这三个类。
使用正则表达式类的通用方法是:
首先生成一个Regex类的实例,并在传入参数中输入正则表达式的模式,然后使用Regex类的相应方法,如IsMatch(判断是否匹配)、Match(返回匹配得到的字符串)等等。
当然也可以使用Regex类的共享方法而不实例化Regex类——IsMatch、Match等等(即上述方法的共享版本)获得所需要的结果。这种方法适于匹配模式不固定,匹配次数不多的情况。
接下来给出一个VB.NET中正则表达式的应用。
2、时间解析程序
该程序读取用户输入的时间长度字符串(如XX小时XX分钟XX秒),把它解析,***用秒表示该时间长度(XX秒)。程序界面如下:
当用户在文本框中输入时间值后,点计算后就会在“结果”后面得到用秒表示的时间值。该程序首先从文本框中读入时间值,然后分别查找其中的小时、分钟、秒部分,在这里就使用了正则表达式对时间表达式进行解析。如小时数的正则表达式可表示为“[0-9]+小时”。“[0-9]”表示0到9间的任意数字都可以被匹配,“+”表示该字符可以出现一次或更多,因此“[0-9]+”即可以匹配任意长度整数(关于正则表达式的语法可以参见MSDN的相应部分),用这个字符串模式就可以查找出表达式中的小时部分。在分别匹配得到小时数、分钟数和秒数后计算得到总的秒数,并显示在“结果”后面。
程序包括一个计算时间的正则表达式工具类TimeRegex,及Form1界面类。
TimeRegex类代码如下:
ImportsSystem.Text.RegularExpressions PublicClassTimeRegex PrivatehourAsInteger=0 PrivateminuteAsInteger=0 PrivatesecondAsInteger=0 PrivatetotalTimeAsInteger=0 PrivateexpAsString'时间表达式 SubNew() EndSub '根据时间文本解析出其中的数字部分 PrivateFunctiongetTime(ByValtimeKindAsString)AsString DimtimeMatchAsMatch DimtimeAsString '先从中解析出包含数字和中文的部分 timeMatch=Regex.Match(exp,timeKind) IftimeMatch.Success=TrueThen time=timeMatch.Value '然后从得到的文本中解析出数字 ReturnRegex.Match(time,"[0-9]+").Value Else Return"0" EndIf EndFunction '根据传入的表达式计算总时间 PublicFunctiongetTotalTime(ByVal_expAsString)AsInteger exp=_exp '分别计算出小时,分钟,秒,然后得到总时间 hour=Integer.Parse(getTime("[0-9]+小时")) minute=Integer.Parse(getTime("[0-9]+分钟")) second=Integer.Parse(getTime("[0-9]+秒")) totalTime=hour*3600+minute*60+second ReturntotalTime EndFunction EndClass Form1类代码如下: PublicClassForm1 InheritsSystem.Windows.Forms.Form PrivateregexAsNewTimeRegex Windows窗体设计器生成代码省略 PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click SecondTime.Text=regex.getTotalTime (timeExp.Text).ToString&"秒" EndSub EndClass
以上是“VB.NET正则表达式如何简化程序代码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341