我在 VB6 用的 Regex 小模块

我一直在用 VB6 写的各种需要正则的小程序里引入这个模块, 很简洁很好用:)
使用之前当然需要在 工程 -> 引用 里勾选 Microsoft VBScript Regular Expression 5.5

具体用法嘛…
1, StrReplace(正则替换):

MsgBox StrReplace("1d2e3f","\d","a")

将会输出
adaeaf

2, StrMatch(正则查找):

Dim mhs As MatchCollection
Set mhs = StrMatch("1d2e3f","\d")
If mhs.Count > 0 Then
    For i = 1 To mhs.Count
        MsgBox mhs(i).Value
    Next i
End If

具体效果嘛…能猜到了吧? 猜不到的自己试试去… 其他用法请参见MSDN 🙂
下面附上模块源码:

Attribute VB_Name = "Regex"
Option Explicit

Public Function StrReplace(StrSource As String, StrPattern As String, StrNew As String) As String
    Dim NewReg As RegExp
    Set NewReg = New RegExp
    NewReg.IgnoreCase = True
    NewReg.Global = True
    NewReg.Pattern = StrPattern
    StrReplace = NewReg.Replace(StrSource, StrNew)
End Function

Public Function StrMatch(StrSource As String, StrPattern As String) As MatchCollection
    Dim NewReg As RegExp
    Set NewReg = New RegExp
    NewReg.Global = True
    NewReg.IgnoreCase = True
    NewReg.Pattern = StrPattern
    Set StrMatch = NewReg.Execute(StrSource)
End Function

8 thoughts on “我在 VB6 用的 Regex 小模块”

Leave a Reply

Your email address will not be published. Required fields are marked *

QR Code Business Card