网站首页 > 知识剖析 正文
正则表达式的基本概念及用途了解之后,我们就来学习下具体的语法,先以一个简单的例子来讲解。
基础语法:
比如,A1单元格中有一串字符:aabbccddaabbcc,我们要把其中的a找到,然后替换成o。
代码如下:
Sub test()
Dim regx As Object, t$, k, s, n
t = "aabbccddaabbcc"
Set regx = CreateObject("vbscript.regexp")'引用正则表达式
regx.Global = True '查找范围,true为全部查找,false只查找第一个,默认是false。
regx.Pattern = "a" '引号里书写正则表达式,这里要查找a,就直接写个a
Set k = regx.Execute(t) 'Execute方法的结果为一个对象,返回匹配成功的结果。
For Each s In k '通过循环K可以得到该对象中的每个元素。
MsgBox s
Next
n = regx.Replace(t, "o") '将匹配成功的结果做替换
MsgBox n
End Sub
上面的代码后面都有注释,首先要引用正则表达式,前期绑定也可以,直接创建也可以,然后要对regexp的两个属性做出指定。
Global属性,指查找范围,true为全部查找,false只查找第一个,如果上面案例中其属性改为false,那么只要该字符串中查找第一个a。
Pattern属性,指的是正则表达式。
下面讲下正则表达式的两个方法:
Execute方法,返回匹配成功的结果,是一个对象,通过for each 可以循环其中的值。
Replace方法,将匹配的结果做替换,regx.Replace(t, "o"),t为原字符串,第二个参数为要替换为的结果。
普通字符的替换:
了解了基础的语法之后,我们来看下如何用正则对普通的字符做替换。
如上例中,把A列部门中的门字去掉。
思路:
对A列部门循环,循环出来的值用正则表达式匹配门字,并把匹配的结果替换成空。
代码如下:
Sub test1()
Dim regx As Object, rng1 As Range
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "门"
End With
For Each rng1 In Range("a2:a11")
rng1(1, 2).Value = regx.Replace(rng1.Value, "")
Next
End Sub
这里注意regexp的两个属性可以用with语法来书写,这样显得简洁明了。当然这节课我们只是对正则表达的基础语法做了个了解,正则表达是真正的魅力在Pattern = "……",引号中的表达式,后面的课程中我们会体会到他的强大之处。
转自:米宏Office
猜你喜欢
- 2025-03-11 word公文自动排版VBA代码,拿走不谢
- 2025-03-11 sqlite3 内部指令集
- 2025-03-11 一文掌握Python 字符串替换:
- 2025-03-11 SpringBoot+Kafka+ELK 完成海量日志收集(超详细)
- 2025-03-11 China to further ties with Peru: spokesperson
- 2025-03-11 如何在canvas中模拟css的背景图片样式
- 2025-03-11 在 Python 中使用多个分隔符拆分字符串:完整指南
- 2025-03-11 解锁 Stitch Fiddle:钩织爱好者的创意神器
- 2025-03-11 EXCEL VBA学习笔记:正则表达式(二)表达式语句写法
- 最近发表
-
- 测试进阶:实现跨请求地保持登录的神器session你get了么?
- Python 爬虫入门五之 Cookie 的使用
- 在Node应用中实施Web认证的四大方法
- PHP防火墙代码,防火墙,网站防火墙,WAF防火墙,PHP防火墙大全
- 程序员和IT人都应该懂的知识:HTTP入门图解
- 如何请求一个需要登陆才能访问的接口(基于cookie)——apipost
- 提高 PHP 代码质量的 36 计(如何提高php技术)
- 彻底搞懂Token、Session和Cookie(token和cookie sessions什么区别)
- 一文详解Python Flask模块设置Cookie和Session
- 超详细的网络抓包神器 tcpdump 使用指南
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)