我正在努力验证我想在 Excel (VBA) 中使用的正则表达式语法。该语法在网络上的每个验证器引擎中运行良好,但我无法让它在 Excel 中工作。
谁能帮我解决这个问题,我将不胜感激。
表达方式:
^.+(?<!/)(?=/?[RP]\d)
验证数据:ABC12345/67/R1A
预期结果:ABC12345/67
请检查此正则表达式^.+(?<!/)(?=/?[RP]\d)
,因为它没有给出预期的输出。它适用于^.+(?=/[RP]\d)
. 下面是示例代码。
Sub Main()
Dim stringToValidate As String
Dim stringResult As String
stringToValidate = "ABC12345/67/R1A"
stringResult = getData(stringToValidate)
End Sub
Function getData(ByVal str As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Global = True
objRegEx.Pattern = "^.+(?=/[RP]\d)"
Set allMatches = objRegEx.Execute(str)
For i = 0 To allMatches.Count - 1
result = result & allMatches.Item(i)
Next
getData = result
End Function