如何获取正则表达式中第一个匹配结果的位置?请参见下文。
Function MYMATCH(strValue As String, strPattern As String, Optional blnCase As Boolean = True, Optional blnBoolean = True) As String
Dim objRegEx As Object
Dim strPosition As Integer
' Create regular expression.
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = strPattern
objRegEx.IgnoreCase = blnCase
' Do the search match.
strPosition = objRegEx.Match(strValue)
MYMATCH = strPosition
End Function
首先,我不确定
.Match
返回的是什么(字符串、整数等)。我找到的一个解决方案说我应该创建一个Match
对象,然后从那里获取位置,但与vb不同,vba不识别Match
对象。我还看到过像下面这样的一些代码,但我并不一定要求值,只需要第一个字符串的位置:If allMatches.count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
有点忽略上面可能出现的语法错误(主要是由于我不断改变变量类型),我该如何轻松地实现这个目标?
谢谢!