EXCEL正则表达式的基础语法(excel正则表达式的基础语法知识)

createh52个月前 (05-07)技术教程27

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


基础语法:


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

相关文章

Java性能调优--代码篇:优化正则表达式的匹配效率

作者 | 浩说编程来源 | 公众号:浩说编程[ 大厂技术资源 | 研发必备安装包 | 限时免费获取 ] 在我们的日常业务开发中经常会涉及到使用正则表达式对数据进行处理,比如String的Split()...

爬虫必备!正则匹配全攻略(正则匹配?!)

在网络爬虫中,正则表达式是一项非常重要的技能。它可以帮助我们快速准确地从网页中提取出我们所需要的信息。本文将为大家详细介绍如何使用正则表达式匹配所有内容。一、理解正则表达式基础知识正则表达式是一种描述...

「正则表达式」 一、正则表达式字符匹配(前端必懂 )

原书这么一句话,特别棒:正则表达式是匹配模式,要么匹配字符,要么匹配位置,要记住。1. 两种模糊匹配正则表达式的强大在于它的模糊匹配,这里介绍两个方向上的“模糊”:横向模糊和纵向模糊。横向模糊匹配即一...

正则表达式(Regex)在线调试工具-Regex101

前言在字符串查找处理程序中,正则表达式是一个不可忽略的处理方式。我们能够利用正则表达式轻松地做到检索、替换那些符合某个模(规则)的字符串。正则表达式有着很强的灵活性、逻辑性及功能性, 可以迅速地用极简...

Perl模式匹配大型连载1——初识正则

Perl内置的模式匹配让你能够简单而高效的搜索处理大量的数据,如果把文本的含义尽可能的扩展, 那么可能我们做的工作中大量的时间都是在处理文本。这个领域就是Perl最初的专业, 而且一直是Perl的目的...

100个Java工具类之26:Java正则表达式工具类

本文主要讲述:Java正则表达式工具类正则表达式是一种字符串处理工具,根据语法规则匹配,可以用来验证、检索字符串。一、是否全小写boolean flag1 = Pattern.matches("...