



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、正则表达式能干什么呢? 你肯定用过excel的“查找”、“替换”功能。正则表达式也可以对字符串进行特定的复杂查找和替换,但它比“查找”和“替换”功能强大的多的多。 正在看蓝桥玄霜版主的字典帖,选了其中的两个例子(附件中的例A和例B),你看到的第一反应是用字典去解决,例A和例B使用正则表达式也很好的解决了问题。(给出这两个例子不是说正则表达式比字典好,只是借此体会正则表达式的强大功能)例1、有如下一组电话号码,如何改变成右侧的样式。(020)12345678021)321456780371)456781290392)1234567010)214589650393)459876360372)87654321想到用查找替换功能解决的方法了吗?利用正则表达式很容易实现。Private Sub CommandButton1_Click()Dim regEX As New RegExp定义一个正则表达式对象regEX.Pattern = (d3,4)(d7,8)设置正则表达式For i = 1 To 7 Range(c & i) = regEX.Replace(Range(a & i), $1-$2)NextEnd Sub2、什么是正则表达式? 简单的说,正则表达式就是一个由一组具有特殊含义的字符组成的字符串,(如例中的(d3,4)(d7,8)),这些有特殊含义的字符设置了一些条件,并通过regEX.Pattern = (d3,4)(d7,8)这一句告诉查找引擎,按照它规定的条件查找符合要求的字符串。再看一个简单的例子:例2,把字符串“这有一本关于VBA的书,它在第二个书柜里”里的书换为“book”。Private Sub CommandButton2_Click()Dim regEX As New RegExpregEX.Global = True设置查找返回全部匹配regEX.IgnoreCase = FALSE设置查找不区分大小写 regEX.Pattern = 书Range(a12) = regEX.Replace(这有一本关于VBA的书,它在第二个书柜里, book)End Sub3、正则表达式的工作原理 我们需要找出目标字符串中所有的“书”字,根据我们的要求写出正则表达式:”书”,通过regEX.Pattern = 书这句把我们的要求以正则表达式的形式告诉查找引擎(本例中正则表达式规定的条件很简单:符合要求的字符串必须是字符“书”),查找引擎从目标字符串的第一个字符开始查找,找到符合正则表达式要求的字符串后就存储起来,然后继续向后查找直到结束。最后,把找到的所有符合要求的字符串以集合的形式返回。(关于返回的集合后面会详细介绍)4、正则表达式对象有四个属性:Global:设置为true表示查找引擎返回找到的所有符合要求的子字符串,设置为false表示只返回找到的第一个符合要求的子字符串。IgnoreCase:设置为true表示查找时忽略大小写,设置为FALSE表示查找时区分大小写。Pattern:存放正则表达式,如例2一样regEX.Pattern = 书MultiLine:不用多说了吧。5、正则表达式对象有三个方法:Execute方法: 语法object. Execute(sourcestring as string) as string, object为你定义的正则表达式对象(如:regEX),参数sourcestring为要对其进行查找的字符串(如例中的这有一本关于VBA的书,它在第二个书柜里)。Execute方法查找并返回符合要求的字符串的集合,相当于使用“查找”功能。Test方法:语法object. Execute(sourcestring as string) as string,其结构和用法和Execute方法一样,它和Execute方法唯一不同的是Test方法只进行测试查找,而不会返回符合要求的子字符串集合。一般用它判断是否可以找到符合要求的字符串。Replace方法:语法object. Replace(sourcestring as string,Replace) as string, object为你定义的正则表达式对象,参数sourcestring为要对其进行查找的字符串, 参数Replacevar为要替换成的内容(如例中的book)。Replace方法查找并返回符合要求的字符串的集合,然后对集合里的字符串进行替换。相当于先使用“查找”功能然后再使用“替换”功能。6、使用正则表达式的步骤:要在VBA中使用正则表达式,首先要“工程”“引用”里添加对“Microsoft VBScript Regular Expressions 5.5”的引用。(当然,你也可以采用后期绑定的方法)。第一步:引用 “Microsoft VBScript Regular Expressions 5.5”第二步:然后根据实际情况设置正则表达式的属性。1、设置Global属性的值由于我们要替换所有的“书”字,而不是只替换第一个“书”字,所以设置Global属性为TRUE即regEX.Global = True。2、设置IgnoreCase属性的值由于我们要查找替换的是汉字,无所谓大小写,所以设置IgnoreCase属性为FALSE即regEX.IgnoreCase = FALSE。第三步、把我们要找的字符串必须符合的条件写成则表达式,并赋值给Pattern属性(例中是regEX.Pattern = 书)第四步:然后根据具体要求选择适当的方法,因为我们不仅要查找符合要求的字符串,而且还要对其进行替换,所以采用Replace方法。(例中是regEX.Replace(这有一本关于VBA的书,它在第二个书柜里, book)。看到这,你会发现使用正则表达式很容易,关键是如何根据具体要求写出正确的正则表达式,这是学习的主要内容。常用正则表达式 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: u4e00-u9fa5评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):x00-xff评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:ns*r评注:可以用来删除空白行匹配HTML标记的正则表达式:*.*?|评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式:s*|s*$评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式匹配Email地址的正则表达式:w+(-+.w+)*w+(-.w+)*.w+(-.w+)*评注:表单验证时很实用匹配网址URL的正则表达式:a-zA-z+:/s*评注:网上流传的版本功能很有限,上面这个基本可以满足需求匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):a-zA-Za-zA-Z0-9_4,15$评注:表单验证时很实用匹配国内电话号码:d3-d8|d4-d7评注:匹配形式如或配腾讯QQ号:1-90-94,评注:腾讯QQ号从10000开始匹配中国邮政编码:1-9d5(?!d)评注:中国邮政编码为6位数字匹配身份证:d15|d18评注:中国的身份证为15位或18位匹配ip地址:d+.d+.d+.d+评注:提取ip地址时有用匹配特定数字:1-9d*$ /匹配正整数-1-9d*$ /匹配负整数-?1-9d*$ /匹配整数1-9d*|0$ /匹配非负整数(正整数 + 0)-1-9d*|0$ /匹配非正整数(负整数 + 0)1-9d*.d*|0.d*1-9d*$ /匹配正浮点数-(1-9d*.d*|0.d*1-9d*)$ /匹配负浮点数-?(1-9d*.d*|0.d*1-9d*|0?.0+|0)$ /匹配浮点数1-9d*.d*|0.d*1-9d*|0?.0+|0$ /匹配非负浮点数(正浮点数 + 0)(-(1-9d*.d*|0.d*1-9d*)|0?.0+|0$/匹配非正浮点数(负浮点数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冠脉造影围手术期护理
- 医养结合培训汇报
- 消防安全培训台账记录课件
- 女性卵巢癌术后护理
- 初中运算法则讲解
- 消防安全培训主体责任课件
- 培训学校教师培训
- 内部物流管理办法解读
- 儿童医院标准化建设指南
- 甲状腺癌术后护理要点
- 机械设计创新项目毕业报告模板
- 2025年辅警面试考试试题库目(答案+解析)
- 校长考试笔试试题及答案
- 2025年江苏保安员考试题库及答案
- 小学二年级综合实践活动课教学计划
- 中小学校长考试试题及答案
- 第4课 记录数据讲诀窍(教学设计)2024-2025学年四年级上册人教版信息技术
- 2025年船员服务行业规模分析及投资前景研究报告
- 生态环境保护执法课件
- 第6课 戊戌变法 课件(内嵌视频) 统编版初中历史八年级上册
- DB32-T 5160-2025 传媒行业数据分类分级指南
评论
0/150
提交评论