【转载】一个通用的调用正则表达式的函数
来源于:
'sOrignText参数表示要执行正则表达式的字符串,sPattern 参数表示正则模式,sReplaceText参数表示要把找到的内容替换为的字符串 Function DoRegExp(ByVal sOrignText As String, ByVal sPattern As String, Optional sReplaceText As String = "") '定义正则表达式对象 Dim oRegExp As Object '定义匹配字符串集合对象 Dim oMatches As Object '定义匹配子字符串集合对象 Dim oSubMatches As Object Dim oMatch As Object Dim str1 As String '创建正则表达式 Set oRegExp = CreateObject("vbscript.regexp") With oRegExp '设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项 .Global = True '设置是否区分大小写,True表示不区分大小写, False表示区分大小写 .IgnoreCase = True '设置要查找的正则规则 .Pattern = sPattern '判断是否可以找到匹配的字符,若可以则返回True If .Test(sOrignText) Then ' 对字符串执行正则查找,返回所有的查找值的集合,若未找到,则为空 Set oMatches = .Execute(sOrignText) ' For Each oMatch In oMatches ' '返回匹配到的字符串的位置 ' Debug.Print oMatch.FirstIndex ' '返回匹配到的字符串的长度 ' Debug.Print oMatch.Length ' '返回子匹配结果 ' str1 = oMatch.SubMatches(0) ' Next ' DoRegExp = oMatches(0).Value ' 把字符串中用正则找到的所有匹配字符替换为其它字符 DoRegExp = .Replace(sOrignText, sReplaceText) Else DoRegExp = sOrignText End If End With Set oRegExp = Nothing Set oMatches = Nothing End Function
正则表达式对象有以下属性
| 属性 | 作用 |
| Global | Global属性用来表示是否对所有字符串中满足规则的字符进行检索 还是只针对第一个出现的满足规则的字符 |
| IgnoreCase | IgnoreCase属性表示是否忽略大小写,也就是大小写是否视为一样 |
| Pattern | Pattern属性即为要对字符串进行检索的正则表达式的规则 |
有以下方法:
| 方法 | 作用 |
| Test | Test方法用来判断是否被查找的字符串含有满足正则表达式规则的部分 |
| Replace | Replace方法用来把被查找的字符串中满足正则表达式规则的部分替换为其它的字符 |
| Execute | Execute方法即对被查找的字符串执行查找操作, 它将返回一个Matches 集合,所有被查找到的字符串都是Matches 集合的元素。 |
如果要处理匹配到的每一个结果,可以遍历Matches 集合,通过Match对象的FirstIndex属性返回匹配结果在整个字符串数据中的位置,通过Match对象的Length属性返回匹配的字符串的长度。其中Matches集合还可以有子集合SubMatches。
浙公网安备 33010602011771号