VBScript 正则表达式
Set createVBScriptRegExObject = CreateObject("vbscript.RegExp")
工具>参考> Microsoft VBScript 正则表达式#。#
Associated DLL:VBScript.dll
源:Internet Explorer 1.0 和 5.5
- MSDN-Microsoft 利用正则表达式提升 VBScript
- MSDN-正则表达式语法(脚本)
- expert-exchange - 在 Visual Basic for Applications 和 Visual Basic 中使用正则表达式 6
- 如何在 Microsoft Excel 中使用正则表达式(正则表达式)在单元格和循环 SO 上。
- regular-expressions.info/vbscript
- regular-expressions.info/vbscriptexample
- WIKI-正则表达式
码
你可以使用此函数获取 RegEx 结果,将所有匹配(如果大于 1)连接成 1 个字符串,并在 excel 单元格中显示结果。
Public Function getRegExResult(ByVal SourceString As String, Optional ByVal RegExPattern As String = "\d+", _
Optional ByVal isGlobalSearch As Boolean = True, Optional ByVal isCaseSensitive As Boolean = False, Optional ByVal Delimiter As String = ";") As String
Static RegExObject As Object
If RegExObject Is Nothing Then
Set RegExObject = createVBScriptRegExObject
End If
getRegExResult = removeLeadingDelimiter(concatObjectItems(getRegExMatches(RegExObject, SourceString, RegExPattern, isGlobalSearch, isCaseSensitive), Delimiter), Delimiter)
End Function
Private Function getRegExMatches(ByRef RegExObj As Object, _
ByVal SourceString As String, ByVal RegExPattern As String, ByVal isGlobalSearch As Boolean, ByVal isCaseSensitive As Boolean) As Object
With RegExObj
.Global = isGlobalSearch
.IgnoreCase = Not (isCaseSensitive) 'it is more user friendly to use positive meaning of argument, like isCaseSensitive, than to use negative IgnoreCase
.Pattern = RegExPattern
Set getRegExMatches = .Execute(SourceString)
End With
End Function
Private Function concatObjectItems(ByRef Obj As Object, Optional ByVal DelimiterCustom As String = ";") As String
Dim ObjElement As Variant
For Each ObjElement In Obj
concatObjectItems = concatObjectItems & DelimiterCustom & ObjElement.Value
Next
End Function
Public Function removeLeadingDelimiter(ByVal SourceString As String, ByVal Delimiter As String) As String
If Left$(SourceString, Len(Delimiter)) = Delimiter Then
removeLeadingDelimiter = Mid$(SourceString, Len(Delimiter) + 1)
End If
End Function
Private Function createVBScriptRegExObject() As Object
Set createVBScriptRegExObject = CreateObject("vbscript.RegExp") 'ex.: createVBScriptRegExObject.Pattern
End Function