正则表达式的基本概念及用途了解之后,我们就来学习下具体的语法,先以一个简单的例子来讲解。

基础语法:

比如,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

正则查找倒数第二个符合条件的字符串_EXCEL正则表达式的基础语法相关推荐

  1. JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象

    转载自:https://www.cnblogs.com/lindsayYang/p/9843599.html JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求 ...

  2. 键盘录入一个字符串要求长度为8不符合输出错误符合条件将字符串中所有大写字符替换成M

    键盘录入一个字符串要求长度为8不符合输出错误符合条件将字符串中所有大写字符替换成M 方式一:不使用正则 import java.util.Scanner; public class Test { pu ...

  3. php正则替换%3cbr%3e_PHP preg_replace() 正则替换所有符合条件的字符串

    需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_matc ...

  4. preg_replace() 正则替换所有符合条件的字符串

    PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数 ...

  5. 提取某个符合条件的字符串中的中文字符 例子

    2019独角兽企业重金招聘Python工程师标准>>> public class TestRegex {     public static void main(String[] a ...

  6. 1 EXECL的查找:(1)精确查找,(2)模糊查找,(3)查多个符合条件的第1个或最后1个

    目录 1 精确查找 (精确查找是模糊查找的子集) 2 模糊查找  (理论上精确查找可以找到的,模糊查找也可以) 3 精确查找,多个符合条件的内容里第1个或最后1个 (就是用模糊查找方法去查精确匹配的数 ...

  7. js查找数组中符合条件的元素

    js查找数组中符合条件元素的几种方法 一.利用for循环进行查找 let arr = [{name: 'zhangsan', age: 18},{name: 'lisi', age: 17},{nam ...

  8. Matlab:查找符合条件的数组元素

    Matlab:查找符合条件的数组元素 应用单个条件 应用多个条件 替换符合条件的值 此示例说明如何通过对数组应用条件来过滤数组元素.例如,您可以检查矩阵中的偶数元素.查找多维数组中所有 0 值的位置, ...

  9. EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

    目录 题外话:学习总结 1 新手切忌贪多 2 熟练者切忌懒惰 3 这2件事恰恰都和人性相反 1 EXCEL文本处理相关函数 2 查找函数 find()  和 search() 2.1 find() 2 ...

最新文章

  1. linux mud 游戏,快刀幻想mud文字传奇-快刀幻想mud神器兑换码-快刀幻想mud下载v1.80-Linux公社...
  2. php 数字转中文函数 1转一,一个阿拉伯数字转中文数字的函数-PHP教程,PHP函数
  3. spfa 判断负环 (转载)
  4. Qt程序打包发布方法(使用官方提供的windeployqt工具)
  5. android 可行性分析,可行性研究项目分析程序与步骤
  6. 代码 直接调节显示设备亮度_LED显示屏参数系列,亮度是什么,如何调节,如何选择...
  7. linux进程线程协程的区别,进程和线程、协程的区别
  8. commons-logging和slf4j都是日志的接口
  9. 判断某一点是否在三角形内
  10. 3D数学基础(一) | 坐标系
  11. MPP模块及sample_venc分析
  12. 简明python教程gitbook_简明Python教程|中英文mobi epub pdf|源代码
  13. android判断apk的版本,Android APP 版本检查
  14. 做外贸的你不能犯的十大邮件错误
  15. 计算机应用基础操作题答案,电大本科计算机应用基础网考操作题及答案
  16. Android录制声音文件(音频),并播放
  17. 命令行的艺术( the-art-of-command-line )
  18. 攻防世界逆向入门题之no-strings-attached
  19. 图书管理开题报告php,基于PHP+SqlServer的图书管理系统,毕业论文设计,答辩ppt,开题报告,外文翻译,苹果,硕士研究生,iphone...
  20. NoSQL概述-从Mongo和Cassandra谈谈NoSQL

热门文章

  1. print2flashwindows7旗舰版下载哪一个_JUJUMAO_MSDN原版 win 7 二合一 旗舰版32位 64位原版ISO镜像...
  2. 纯净pe工具_微PE工具箱2.0
  3. windows副本不是正版怎么办_盗版系统总是崩溃?别着急,让我来告诉你正版系统怎么下载...
  4. 艾特某人代码实现_Vue@某人,At某人,仿新浪微博@某人,@user,艾特,艾特某人...
  5. python列表各元素修改为int类型
  6. 工业以太网交换机的优势以及注意事项介绍
  7. 如何对工业交换机端口进行调试?
  8. 工业交换机常见问题汇总!
  9. 工业交换机中:千兆级别和快速级别传输效率对比
  10. 【渝粤题库】广东开放大学 计算机应用基础(本) 形成性考核