一直在用 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