分享

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

 gblhp 2015-02-16

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

从这节开始分享一些正则表达式的基础符号和例子,我自己关于这方面的资料比较少,都是网上搜集的,大家看看即可。

先看几个符号:

\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[^0-9]。
\w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
.点 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。

第一个\就是为了转义,比如"\n"代表换行符,如果你想要匹配的是字符串"\n"本身而不是换行符就要在前面再加一个\。剩下几个都很简单,一看就明白,下面看个例子。

还看上节那个挖掘机的例子

Sub Macro()
Dim str, regx
str = "学挖掘机1234哪789家00强"
Set regx = CreateObject("VBScript.RegExp")
With regx
.Global = True
.Pattern = "\d"
str = .Replace(str, "")
End With
MsgBox str
End Sub

如上面所说的\d匹配所有数字字符,那我将所有数字字符都替换为空那就只剩下了汉字,同理,如果我想只数字,把汉字去掉,那只要把Pattern属性变为"\D"即可,匹配所有非数字,然后再将其替换为空。

当然如果我们的原字符串中再加上一些英文字母,比如"学挖掘机1234A哪789B家00C强",要想提取出汉字就得匹配任何单词字符,再将其替换,那Pattern就是"\w",反过来要去汉字就得写成大写的"\W"。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多