VBScript.RegExp 正则表达式excel vba 学习经验
1) 手动引用(前期绑定)
点击VBE编辑器菜单:工具 - 引用,选取:
Microsoft VBScript Regular Expressions 5.5
Dim regex As
New InternetExplorer
2)
代码引用(后期绑定)
Dim regex As Object
Set regex =
CreateObject("VBScript.RegExp")
1) Global 属性
False,如果找到匹配的字符,就停止搜索(默认值)
True ,搜索字符串中全部字符
Sub
r_1()
Dim regex As
Object
Dim x As String
x
= "a1b2c3"
Set regex =
CreateObject("VBScript.RegExp")
With
regex
.Global
= True
'返回"a#b#c#"
' .Global
=
False '返回"a#b2c3"
.Pattern
= "\d" '数字字符匹配
MsgBox
.Replace(x, "#")
End With
End Sub
2) IgnoreCase 属性
如果搜索是区分大小写的,为False(缺省值)
True不分
Sub
r_2()
Dim regex As
Object
Dim x As String
x
= "a1A2"
Set regex =
CreateObject("VBScript.RegExp")
With
regex
.Global
= True
.IgnoreCase
= True '返回"#1#2"
' .IgnoreCase
=
False '返回"ab#2"
.Pattern
= "A" '数字字符匹配
MsgBox
.Replace(x, "#")
End With
End Sub
3) Multiline 属性
返回正则表达式是否具有标志m , 缺省值为False
Sub
r_3()
Dim regex As
Object
Dim x As String
x
= "a1b2" & Chr(13) &
"c3d4"
Set regex =
CreateObject("VBScript.RegExp")
With
regex
.Global
= True
' .MultiLine
=
True
.Pattern
=
"\d+$"
MsgBox
.Replace(x, "#")
End With
End Sub
4) Pattern 属性
一个字符串,用来定义正则表达式。缺省值为空文本。
5) Execute 方法
返回一个
MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。
Sub
r_5()
Dim regex As
Object
Dim matchs As
Object, match As Object
Dim x As String, y As
String
x
= "a1b2c3"
Set regex =
CreateObject("VBScript.RegExp")
With
regex
.Global
= True
.Pattern
= "\d" '匹配数字
Set matchs =
.Execute(x)
For Each match
In
matchs
y
= y &
match
Next
End With
MsgBox
y 'y返回123
End Sub
6) Test 方法
返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。
Sub
r_6()
Dim regex As
Object
Dim x As String, y As
String
Dim i As Integer
x
= "a1b2c3"
Set regex =
CreateObject("VBScript.RegExp")
With
regex
.Global
= True
.Pattern
=
"\d"
For i = 1 To
Len(x)
If .Test(Mid(x, i, 1)) Then y = y & Mid(x, i,
1)
Next
i
End With
MsgBox
y 'y返回123
End Sub
VBScript.RegExp 正则表达式excel vba 学习经验的更多相关文章
- excel VBA一个fuction同时执行多个正则表达式,实现方法
代码: Function zhengze3(ze1 As String, ze2 As String, Rng1 As Range, Rng2 As Range) Set regx1 = Cre ...
- MySQL学习笔记:regexp正则表达式
在MySQL中,模糊搜索的时候主要用两种方式: 1.like2.regexp + 正则表达式 性能优于like 正则表达式描述了一组字符串. 最简单的正则表达式是不含任何特殊字符的正则表达式.例如,正 ...
- Excel VBA 入门基础
Private Sub RegExp_Replace() Dim RegExp As Object Dim SearchRange As Range, Cell As Range '此处定义正则表达式 ...
- excel VBA把一个单元格内容按逗号拆分并依次替换到另一个单元格的括号里面(本题例子,把文本中的括号换成{答案}的格式,并按顺序填空)
方法1:运用excel单元格拆分合并实现 思路:用VBA正则查询左侧括号个数,对右侧单元格逐一按逗号.顿号等符号分列,同时左侧按括号分列(分列只能按括号单边分列),分列完成后按要求合并,本题事例把括号 ...
- 来吧!带你玩转 Excel VBA
来吧!带你玩转 Excel VBA 从错失良机到艰辛的DOS征程,从坎坷购机自学路到转机起程,从爱好到事业,他从一个完全不懂电脑的人到VBA高级应用者,一切全是自学…… 我是罗刚君,来自四川的一个小县 ...
- PHP正则表达式之快速学习法
1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...
- Excel VBA业余爱好者心得及总结
我不是IT专业人士,而是一位医务工作者,当初学习Excel VBA时,是因为读研究生时的课题需要:实验仪器每天产生4个Word文件,每个文件有9个表格,总计近百个数据.为了对这些数据进行统计分析,则需 ...
- excel VBA正则匹配单元格符号,并按符号把单元格拆分行(这里是按第一列分行,分行是从活动单元格的行开始,分行前需要选择所有需要填充内容的列,否则需要后期手动填充)
Sub W() ' MsgBox "行数:" & Selection.Rows.Count Dim rows_count As Integer Dim ro ...
- Excel DNA学习笔记一
由于各种原因,被迫学习Excel DNA这个开源项目的使用方法,最后希望可以在其中,调用xll进行编码. 由此整理一下,这期间使用到的一些资料. 1.下载Excel DNA,目前最新的是0.30版 h ...
随机推荐
- linux常用软件安装,常用命令
jdk [root@localhost]# tar -zxvf jdk-8u144-linux-x64.tar.gz [root@localhost]# vi /etc/profile 在profil ...
- Ext.js入门:模板(四)
1.Ext.DomHelper简介2.Template语法使用简介3.Template简单应用4.Template中使用转换函数5.使用模板的自定义接口6.XTemplate应用 一:Ext.DomH ...
- zookeeper单机集群搭建
1. 下载zookeeper 参考官方文档下载一节:https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_Download ...
- html,css.javascript
基本标签(a.p.img.li.table.div.span).表单标签.iframe.frameset.样式 1:Html (Hypertext Markup Language) 超文本标记语言 ...
- Linux命令02--系统管理
<1>查看当前日历:cal <2>显示或者设置时间 设置时间格式(需要管理员权限):一般都是有ntp服务的,你的系统会根据这个对照互联网时间 <3>查看进程信息:p ...
- 094实战 关于js SDK的程序,java SDK的程序
一:JS SDK 1.修改配置workspace 2.导入 3.Demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans ...
- js获取按键
event.altKey.event.ctrlKey.event.shiftKey 属性 属性为true表示事件发生时Alt.Ctrl.Shift键被按下并保持,为false则Alt.Ctrl.Shi ...
- socket.io的用户认证
一直专心于写代码,遇到问题便看别人的博客来解决问题,突然感觉自己也应该写点东西帮助别人来解决问题.废话不多说了,直接切入正题~ 最近在写一个聊天室来学习node和socket相关知识.遇到的问题描述: ...
- es6的解构赋值用途
(1)交换变量的值 let x = 1; let y = 2; [x, y] = [y, x]; 上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰. (2)从函数返回多个值 函数 ...
- 潭州课堂25班:Ph201805201 第四课:Linux的命令以及VIM的使用 (课堂笔记)
Linux的常用命令 引入 1:如果我们要在Linux里面实现一些比如查看文件和文件夹.新建文件夹之类的操作,应该是通过什么来实现 2:讲解Linux目录树 3:讲解Linux只区分文件名,Linux ...