分享

正则表达式基础符号(4) | VBA实例教程

 gblhp 2015-02-16

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/483.html,VBA交流群273624828。

这节继续来讲下正则表达式的基本符号。

[xyz] 字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。

注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.

[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。

这节来看下中括号[]的用法。中括号就是对其中的值进行枚举匹配。[abc]表示既可以匹配a,又可以b还可以c,前面加个符号^就表示匹配除abc以外的任意字符或数字,如果字符是有规律的也可以用[a-d],[1-9]这种形式,表示匹配a到d的字符,[1-9]表示匹配1至9的数字。

看下例子

Sub Macro()
Dim str, regx
str = "学挖123掘机aaaaa哪b家Maa强"
Set regx = CreateObject("VBScript.RegExp")
With regx
.Global = True
.Pattern = "[abM]"
str = .Replace(str, "")
End With
Debug.Print str
End Sub

上面的代码匹配a,b,M三个字符中的任意一个都可以,所以结果就是“学挖123掘机哪家强”。

.Pattern = "[^abM]"

上面的模式表示匹配既不是a又不是b又不是M的任意字符,所以最后只剩下了“aaaaabMaa”。

Sub Macro()
Dim str, regx
str = "学挖掘机abcdABCD哪b家Eaa强"
Set regx = CreateObject("VBScript.RegExp")
With regx
.Global = True
.Pattern = "[a-d]"
str = .Replace(str, "")
End With
Debug.Print str
End Sub

上面的代码匹配a到d的所有字符,即相当于[abcd],所以结果是“学挖掘机ABCD哪家E强”

.Pattern = "[a-dA-E]"

上面的代码匹配小写abcd和大写ABCDE,注意两者之间是没有逗号的,最后结果是“学挖掘机哪家强”,那么仿照这个如果要匹配1,2,3,6,7,8,9就可以写成.Pattern = "[1-36-9]",注意3和6之间没有任何符号。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多