




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对于初学者看到类似 w w w 1 3 这样复杂没有规律的字符 就 会莫名产生一种恐惧感 其实正则表达式和字符串 String 的使用同样非常简 单 下面让我们逐步地走进正则表达式的世界 什么是正则表达式什么是正则表达式 正则表达式是用来检验和操作字符串的强大工具正则表达式是用来检验和操作字符串的强大工具 简单的理解正则表达式 可以认为是一种特殊的验证字符串 正则表达式常见运用是验证用户输入信息 格式 比如上面的那组 w 1 w 1 w 1 实际上就是验证邮件地址是 否合法的 当然正则表达式不仅仅是用于验证 可以说只要运用字符串的地方 都可以使用正则表达式 涉及的基本的类涉及的基本的类 正则表达式在英文中写作 Regular Expression 根据正则表达式的使 用范围和单词意思 NET 将其命名空间设置为 System Text RegularExpressions 在该命名空间内包括了 8 个基本的类 Capture CaptureCollection Group GroupCollection Match MatchColle ction Regex 和 RegexCompilationInfo 如图 所示 图图 1 1 MSDNMSDN LibraryLibrary 中正则表达式命名空间中正则表达式命名空间 Capture 用于单个表达式捕获结果 CaptureCollection 用于一个序列进行字符串捕获 Group 表示单个捕获的结果 GroupCollection 表示捕获组的集会 Match 表示匹配单个正则表达式结果 MatchCollection 表示通过迭代方式应用正则表达式到字符串中 Regex 表示不可变的正则表达式 RegexCompilationInfo将编译正则表达式需要提供信息 注意 本文属于初学正则表达式的入门文章 对于高级的分组 Group 及其涉及语 法等在这里不做介绍 正则表达式基础知识正则表达式基础知识 基本语法基本语法 在正则表达式中拥有一套自己的语法规则 常见语法包括 字符匹配 重 复匹配 字符定位 转义匹配和其他高级语法 字符分组 字符替换和字符决 策 字符匹配语法 字符匹配语法 字符语法字符语法语法解释语法解释语法例子语法例子 d 匹配数字 0 9 d 匹配 8 不匹配 12 D 匹配非数字 D 匹配 c 不匹配 3 w 匹配任意单字符 w w 匹配 A3 不匹配 3 W 匹配非单字符 W 匹配 不匹配 c s 匹配空白字符 d s d 匹配 3 d 不匹配 abc S 匹配非空字符 S S S 匹配 A 4 不匹配 3 d 匹配任意字符 匹配 A 5 不匹配换行 匹配括号中任意字符 b d 匹配 b c d 不匹配 e 匹配非括号字符 b z 匹配 a 不匹配 b z 的字符 重复匹配语法 重复匹配语法 重复语法重复语法语法解释语法解释语法例子语法例子 n 匹配 n 次字符 d 3 匹配 d d d 不匹配 d d 或 d d d d n 匹配 n 次和 n 次以上 w 2 匹配 w w 和 w w w 以上 不匹配 w n m 匹配 n 次上 m 次下 s 1 3 匹配 s s s s s s 不匹配 s s s s 匹配 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 进制 ASCII xnn 匹配一个 16 进制 ASCII unnnn 匹配 4 个 16 进制的 Uniode c 大写字母匹配 Ctrl 大写字母例如 cS 匹配 Ctrl S 构造正则表达的方法构造正则表达的方法 构造正则表达式需要涉及 Regex 类 在 Regex 类中包括 IsMatch Replace Split 和 Match 的类 1 1 IsMatch IsMatch 方法方法 IsMatch 方法实际上是一个返回 Bool 值得方法 如果测试字符满足正则 表达式返回 True 否则返回 False 例 判断是非成都地区电话号码合法 分析 成都地区电话号码组成 028 前面为固定区号 028 后面满足 8 位数字 设计正则表达式 028 d 8 解释 028 区号固定 后面为 8 个数字 d 组成 程序代码 如图 2 所示 图图 2 2 例例 1 1 IsMatchIsMatch 方法是用例方法是用例 2 2 Replace Replace 方法 方法 Replace 方法实际上是一种替换的方法 替换匹配正则表达式匹配模式 例 2 在发布带有公开电子邮件地址的文章时 替换 为 AT 避免产生垃圾邮件 分析 首先需要判断文章中电子邮箱地址 然后执行替换 设计正则表达式 判断电子邮箱表达式 w 1 w 1 程序代码 如图 3 所示 图图 3 3 例例 2 Replace2 Replace 方法是用例方法是用例 3 3 Split Split 方法 方法 Split 方法实际上是拆分的方法 根据匹配正则表达式进行拆分储存在字 符串数组中 例 3 从群发邮件地址中读取所有邮件地址 分析 群发邮件采用 作为分割符 需要通过 进行拆分 程序代码 如图 4 所示 图图 4 4 例例 3 Split3 Split 方法是用例方法是用例 构建表达式基本方法构建表达式基本方法 构造 Regex 对象的构造函数包括两个重载 一个是不含参数的构造 另外 一个是含有参数的构造函数 基本形式 Regex string pattern 重载形式 Regex string pattern RegexOptions 补充 RegexOptions 属于枚举类型 包括 IgnoreCase 忽略大小写 ReghtToLeft 从右向左 None 默认 CultureInvariant 忽略区域 Multline 多行模式 和 SingleLine 单行模式 例 4 建立一个合法 ISBN 验证格式 分析 ISBN 格式为 X XXXXX XXX X 正则表达式格式 d d 5 d 3 d 构造该正则表达式函数 Regex ISBNRegex new Regex 表达式 参数为空 详细代码 如图 5 所示 图图 5 5 例例 4 4 构造验证函数是用例构造验证函数是用例 编写一个检验程序编写一个检验程序 为了方便自己在学习正则表达式和快速检验自己编写表达式语句是否正确 下面提供一个 IsMatch 方法正则表达式验证器编写 1 打开 VS NET 选择新建项目中的 Visual C 项目的Windows应用程序 取 名为 Regex Tools 2 然后编写如图 6 所示的界面 图图 6 6 正则表达式正则表达式 IsMatchIsMatch 方法验证器方法验证器 3 然后在该窗体声明中增加正则表达式命名空间声明 using System Text RegularExpressions 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园音乐讲座活动方案策划
- 天津成套钢支撑施工方案
- 无人机驾驶员岗位操作技能考核试卷及答案
- 咨询公司的方案部
- 幕墙设计咨询方案模板
- 幼儿职业绘画活动方案策划
- 洋湖移动咨询方案
- 奶茶甜品店营销计划方案
- 草莓节事活动策划方案
- 拼多多线下活动方案策划
- 《禁骑电动自行车》班会课件
- 秋收活动方案
- 物流地产发展前景分析
- 三年个人成长路线图:高中数学名师工作室
- 子宫动脉栓塞护理查房
- 基于机器学习的异常检测与预警机制
- 大气道狭窄的护理查房
- 粮油品质检验与分析(第二版) 课件全套 第0-10章 绪论、粮食的理化特性与品质变化-粮油卫生检验
- ZZ002 植物嫁接赛项正式赛卷(有答案)完整版包括所有附件-2023年全国职业院校技能大赛赛项正式赛卷
- 软装报价单模板
- 水的饱和蒸汽压与温度对应表
评论
0/150
提交评论