C#正则表达式快速入门.doc_第1页
C#正则表达式快速入门.doc_第2页
C#正则表达式快速入门.doc_第3页
C#正则表达式快速入门.doc_第4页
C#正则表达式快速入门.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容1. 什么是正则表达式2. 涉及的基本的类3. 正则表达式基础知识4. 构建表达式基本方法5. 编写一个检验程序6. 参考资料正文对于初学者看到类似“w+w+.w1,3”这样复杂没有规律的字符,就会莫名产生一种恐惧感。其实正则表达式和字符串(String)的使用同样非常简单。下面让我们逐步地走进正则表达式的世界!什么是正则表达式正则表达式是用来检验和操作字符串的强大工具。简单的理解正则表达式可以认为是一种特殊的验证字符串。正则表达式常见运用是验证用户输入信息格式,比如上面的那组“w1,w1,.w1”,实际上就是验证邮件地址是否合法的;当然正则表达式不仅仅是用于验证,可以说只要运用字符串的地方都可以使用正则表达式;涉及的基本的类正则表达式在英文中写作(Regular Expression),根据正则表达式的使用范围和单词意思,.NET将其命名空间设置为System.Text.RegularExpressions;在该命名空间内包括了8个基本的类:Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection、Regex和RegexCompilationInfo如图所示;图1 MSDN Library中正则表达式命名空间Capture用于单个表达式捕获结果CaptureCollection用于一个序列进行字符串捕获Group表示单个捕获的结果GroupCollection表示捕获组的集会Match表示匹配单个正则表达式结果MatchCollection表示通过迭代方式应用正则表达式到字符串中Regex表示不可变的正则表达式RegexCompilationInfo将编译正则表达式需要提供信息注意本文属于初学正则表达式的入门文章,对于高级的分组(Group)及其涉及语法等在这里不做介绍;正则表达式基础知识 基本语法在正则表达式中拥有一套自己的语法规则,常见语法包括;字符匹配、重复匹配、字符定位、转义匹配和其他高级语法(字符分组、字符替换和字符决策);字符匹配语法:字符语法语法解释语法例子d匹配数字(09)d匹配8,不匹配12;D匹配非数字D匹配c,不匹配3;w匹配任意单字符ww 匹配A3,不匹配3;W匹配非单字符W匹配,不匹配c;s匹配空白字符dsd匹配3 d,不匹配abc;S匹配非空字符SSS匹配A#4,不匹配3 d;.匹配任意字符.匹配A$ 5,不匹配换行;匹配括号中任意字符b-d匹配b、c、d, 不匹配e;匹配非括号字符b-z匹配a,不匹配b-z的字符;重复匹配语法:重复语法语法解释语法例子n匹配n次字符d3匹配ddd,不匹配dd或ddddn,匹配n次和n次以上w2匹配ww和www以上,不匹配wn,m匹配n次上m次下s1,3匹配s,ss,sss,不匹配ssss?匹配0或1次5?匹配5或0,不匹配非5和0+匹配一次或多次S+匹配一个以上S,不匹配非一个以上S*匹配0次以上W*匹配0以上W,不匹配非N*W字符定位语法:重复语法语法解释语法例子定位后面模式开始位置$前面模式位于字符串末端A前面模式开始位置z前面模式结束位置Z前面模式结束位置(换行前)b匹配一个单词边界B匹配一个非单词边界转义匹配语法:转义语法涉及字符(语法解释)语法例子“”+实际字符 . * + ? | ( ) $ 例如:匹配字符“”n匹配换行r匹配回车t匹配水平制表符v匹配垂直制表符f匹配换页nnn匹配一个8进制ASCIIxnn匹配一个16进制ASCIIunnnn匹配4个16进制的Uniode c+大写字母匹配Ctrl-大写字母例如:cS-匹配Ctrl+S 构造正则表达的方法构造正则表达式需要涉及Regex类,在Regex类中包括:IsMatch()、Replace()、Split()和Match的类;(1) IsMatch()方法;IsMatch()方法实际上是一个返回Bool值得方法,如果测试字符满足正则表达式返回True否则返回False;例;判断是非成都地区电话号码合法;分析:成都地区电话号码组成028*,前面为固定区号028,后面满足8位数字;设计正则表达式:028d8(解释:028区号固定,后面为8个数字d组成);程序代码,如图2所示:图2 “例1” IsMatch方法是用例(2) Replace()方法;Replace()方法实际上是一种替换的方法,替换匹配正则表达式匹配模式;例2:在发布带有公开电子邮件地址的文章时,替换位AT避免产生垃圾邮件;分析:首先需要判断文章中电子邮箱地址,然后执行替换设计正则表达式:判断电子邮箱表达式”w1,w1,.”;程序代码:如图3所示;图3 “例2”Replace方法是用例(3) Split()方法;Split()方法实际上是拆分的方法,根据匹配正则表达式进行拆分储存在字符串数组中;例3:从群发邮件地址中读取所有邮件地址;分析:群发邮件采用“;”作为分割符,需要通过“;”进行拆分程序代码:如图4所示;图4 “例3”Split方法是用例构建表达式基本方法构造Regex对象的构造函数包括两个重载,一个是不含参数的构造、另外一个是含有参数的构造函数; 基本形式Regex(string pattern); 重载形式Regex(string pattern,RegexOptions);补充:RegexOptions属于枚举类型,包括IgnoreCase(忽略大小写)、ReghtToLeft(从右向左)、None(默认)、CultureInvariant(忽略区域)、Multline(多行模式)和SingleLine(单行模式);例4,建立一个合法ISBN验证格式;分析:ISBN格式为X-XXXXX-XXX-X;正则表达式格式:d-d5-d3-d构造该正则表达式函数Regex ISBNRegex = new Regex(表达式,参数为空)详细代码:如图5所示;图5 “例4”构造验证函数是用例编写一个检验程序为了方便自己在学习正则表达式和快速检验自己编写表达式语句是否正确,下面提供一个IsMatch()方法正则表达式验证器编写;1. 打开VS.NET,选择新建项目中的Visual C#项目的Windows应用程序,取名为“Regex_Tools”;2. 然后编写如图6所示的界面图6 正则表达式IsMatch方法验证器3.4. 然后在该窗体声明中增加正则表达式命名空间声明using System.Text.RegularEx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论