VBA入门到进阶常用知识代码总结40
第40集 正则表达式4
175、 ()
可以让括号内作为一个整体,取匹配结果的时候,括号中的表达式可以用 \数字引用,\后数字按照从左往右,从外向里的顺序。
Sub t29()
Dim regx As New RegExp
Dim sr
sr = “A3A3QA3A37BDFEA387A8”
With regx
.Global = True
.Pattern = “(A3){2}” '相当于A3A3,结果:Q7BDFEA387A8
Debug.Print .Replace(sr, “”)
End With
End Sub
Sub t30()Dim regx As New RegExpDim srsr = "A3A3QA3A37BDFEA387A8"With regx.Global = True.Pattern = "((A3){2})Q\1" 'A3A3QA3A3,\1代表((A3){2}),即A3A3,结果:7BDFEA387A8Debug.Print .Replace(sr, "")End WithEnd SubSub t31()Dim regx As New RegExpDim srsr = "A3A3B4B4QB4B47BDFE87A8"With regx.Global = True.Pattern = "((A3){2})((B4){2})Q\4" 'A3A3B4B4QB4,\4代表(B4),如\3代表((B4){2}),结果:7BDFEA387A8Debug.Print .Replace(sr, "")End WithEnd Sub
176、 (?=字符)
用(?=字符)可以先进行预测查找,到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。 不会保存匹配项以备将来之用。
'例:截取某个字符之前的数据
Sub t343()
Dim regex As New RegExp
Dim sr, mat, m
sr = “100元8000元57元”
With regex
.Global = True
.Pattern = “\d+(?=元)” '查找任意多数字后的元,查找到后从元以前开始查找,查找和\d匹配的。
Set mat = .Execute(sr)
For Each m In mat
Debug.Print m
Next m
End With
End Sub
结果:
100
8000
57
.Pattern = “\d+(?=元).”
结果:
100元
8000元
57元
.Pattern = “\d+(?=元)\d” 没有匹配到的结果,因为元是一个字符,而\d是一个数字,不同类的将匹配不到。
'例:验证密码,条件是4-8位,必须包含一个数字
Sub t355()
Dim regex As New RegExp
Dim sr, mat, m
sr = “A8ayaa”
With regex
.Global = True
.Pattern = “^(?=.\d).{4,8}$"
Set mat = .Execute(sr)
For Each m In mat
Debug.Print m
Next m
End With
End Sub
177、 (?!字符)
用(?!字符)可以先进行负预测查找,到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。 不会保存匹配项以备将来之用。
Sub t356()
Dim regex As New RegExp
Dim sr, mat, m
sr = “建筑集团公司”
With regex
.Global = True
.Pattern = "^(?!中国).” '结果:建筑集团公司
Set mat = .Execute(sr)
For Each m In mat
Debug.Print m
Next m
End With
End Sub
178、 ()与|
()与|一起使用可以表示or
Sub t344()
Dim regex As New RegExp
Dim sr, mat, m
sr = “100元800块7元”
With regex
.Global = True
.Pattern = “\d+(元|块)”
’ 相当于.Pattern = “\d+元|\d+块”
Set mat = .Execute(sr)
For Each m In mat
Debug.Print m
Next m
End With
End Sub
结果:
100元
800块
7元
VBA入门到进阶常用知识代码总结40相关推荐
- VBA入门到进阶常用知识代码总结47
第47集 程序优化与提速 205. 减少对象的调用 调用对象是非常非常的耗费资源的,所以一定要尽可能的少调用对象.包括: 工作簿.工作表.单元格以及外引用对象. Sub 在循环中调用单元格() Dim ...
- VBA入门到进阶常用知识代码总结77
第77集 API基础 367. API概述 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或 ...
- VBA入门到进阶常用知识代码总结43
第43集 日期与时间专辑 189. 返回当前日期.时间(指本机系统设置的日期和时间) Sub t1() Debug.Print Date '返回当前日期 Debug.Print Time '返回当前时 ...
- Vue3+TypeScript从入门到进阶(六)——TypeScript知识点——附沿途学习案例及项目实战代码
文章目录 一.简介 二.Vue2和Vue3区别 三.Vue知识点学习 四.TypeScript知识点 一.JavaScript和TypeScript 二.TypeScript的安装和使用 1.Type ...
- Webpack从入门到进阶(二)---附沿路学习案例代码
文章目录 Webpack从入门到进阶(一)---附沿路学习案例代码 一.Webpack简介 1.前端发展的几个阶段 2.前端三个框架的脚手架 3.Webpack是什么? 4.webpack和vite ...
- HBase入门至进阶以及开发等知识梳理
HBase入门至进阶以及开发等知识梳理 HBase简介 hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分 ...
- Vue3+TypeScript从入门到进阶(八)——项目打包和自动化部署——附沿途学习案例及项目实战代码
文章目录 一.简介 二.Vue2和Vue3区别 三.Vue知识点学习 四.TypeScript知识点 五.项目实战 六.项目打包和自动化部署 一. 项目部署和DevOps 1.1. 传统的开发模式 1 ...
- 100例Python代码带你从入门到进阶!
以下所有代码全都至少运行一遍,确保可复现.易于理解.逐步完成入门到进阶的学习. 此教程经过我 反复打磨多遍 ,经常为此熬夜,真心不易,文章比较长,看完有用,帮我点个在看或分享支持. 教程包括 62 个 ...
- VBA编程中常用过程代码
VBA编程常用过程代码方案,供大家写代码参考,陆续发表: VBA过程代码6:返回当前单元格的位移 Sub MyNZ() on error resume next ActiveCell.Offset(0 ...
最新文章
- Centos7常用命令
- 阿里巴巴招聘最全集合帖:宣讲会+岗位+30篇面试宝典来啦
- 从open系统调用的源码看文件的打开过程
- 【MFC系列-第7天】MFC类库封装原理
- 前端学习(1969)vue之电商管理系统电商系统之渲染动态参数和静态参数的表格
- 中兴myos和鸿蒙,继华为鸿蒙系统以后!中兴再次发布新系统MyOS:可媲美苹果
- 用concat批量生成MySQL查询语句
- html5 复制到剪贴板 兼容,js/jQuery实现复制到剪贴板功能,兼容所有浏览器
- 批量修改注册表之Bat脚本
- malloc函数和free函数的使用方法解析
- NTFS与FAT32区别
- 基于BoF算法的图像分类
- ESLint语法检查
- 到2020年,烟台重点林区视频监控率将达90%以上
- Cesium实时目标跟踪最新特效教程系列1—实时发亮直线跟踪移动目标
- Star CCM+ Interface踩坑——表面发射率
- 配色三部曲-创建自己的调色板
- Linux嵌入式数据库
- PROFINET的GSD文件描述
- 数据库领域顶会SIGMOD背后的故事,这篇文章全部告诉你~
热门文章
- Java源码阅读之String(4)
- Scrum master成长笔记 –Scrum master最需要的能力
- Ajax异步请求原理和过程
- python recv_python网络编程调用recv函数完整接收数据的三种方法
- 2023年01月 使用win11系统自带SSH,远程控制VMware中Liunx虚拟机系统
- python中hasattr,getattr,setattr的区别
- matlab 矩阵处理,matlab矩阵处理
- Hadoop集群分布式安装
- Windows下使用pip时出现TSL/SSL错误解决方案
- 平衡小车c语言程序,【全部开源】两轮平衡小车(原理图、PCB、程序源码、BOM等)...