excel做正则筛选?excel怎么做筛选条件
大家好,今天小编来为大家解答excel做正则筛选这个问题,excel怎么做筛选条件很多人还不知道,现在让我们一起来看看吧!
如何在Excel VBA 中使用正则表达式
方法/步骤
1
新建一个空白工作簿,在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境,如下图所示:
2
在“代码窗口“中复制粘贴以下代码:
Sub RegTest()
'定义正则表达式对象
Dim oRegExp As Object
'定义匹配字符串集合对象
Dim oMatches As Object
'创建正则表达式
'定义要执行正则查找的文本变量
Dim sText As String
sText="这是v一个正则表达式b的范例程序a代码"
Set oRegExp= CreateObject("vbscript.regexp")
With oRegExp
'设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项
.Global= True
'设置是否区分大小写,True表示不区分大小写, False表示区分大小写
.IgnoreCase= True
'设置要查找的字符模式
.Pattern="[\u4e00-\u9fa5]+"
'判断是否可以找到匹配的字符,若可以则返回True
MsgBox.Test(sText)
'对字符串执行正则查找,返回所有的查找值的集合,若未找到,则为空
Set oMatches=.Execute(sText)
'把字符串中用正则找到的所有匹配字符替换为其它字符
MsgBox.Replace(sText,"")
End With
Set oRegExp= Nothing
Set oMatches= Nothing
End Sub
如下图所示:
3
执行以上代码,将把 sText="这是v一个正则表达式b的范例程序a代码"变量中的中文字符全部删除,将只返回"vba"3个英文字符,如下图所示。其中的.Pattern="[\u4e00-\u9fa5]+"表示匹配所有中文字符,Pattern属性是正则表达式对象的核心,当需要执行其它查找替换时一般都只需更改Pattern属性即可。
4
一些常见的正则Pattern如下:
[0-9]表示匹配任意一个数字
[a-zA-Z]表示匹配任意一个英文字母
[\u4e00-\u9fa5]表示匹配任意一个中文字符
Excel RegexBuddy能自动生成正则表达式吗
两个都不能自动生成正则
Excel中使用VBA可以用正则表达式
Regexbuddy可以测试正则,可以把正则表达式转换不同的语言,如PHP、Java,能自动生成匹配需要的语句,并且还能把正则的格式变换成复合该语言的字串。但是不能自动生成正则表达式字串
例如:
根据上面的正则语句自动生成了下面的语句。但是上面的正则语句不是自动生成的,是要人工输入的。
excel与正则表达式不匹配
目前没有可直接使用正则表达式的函数至少10版本的EXCEL没有。
1、正则表达式,又称规则表达式,在代码中常简写为REGEX、REGEXP或RE,是一种文本模式,包括普通字符例如a到z之间的字母和特殊字符称为元字符,是计算机科学的一个概念。
2、正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式规则的文本。
文章到此结束,如果本次分享的excel做正则筛选和excel怎么做筛选条件的问题解决了您的问题,那么我们由衷的感到高兴!