2

我正在努力验证我想在 Excel (VBA) 中使用的正则表达式语法。该语法在网络上的每个验证器引擎中运行良好,但我无法让它在 Excel 中工作。

谁能帮我解决这个问题,我将不胜感激。

表达方式:

    ^.+(?<!/)(?=/?[RP]\d) 

验证数据:ABC12345/67/R1A

预期结果:ABC12345/67

4

1 回答 1

0

请检查此正则表达式^.+(?<!/)(?=/?[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
于 2013-11-06T06:47:09.623 回答