如何使用正则表达式与访问和VBA匹配字符串

时间:2015-02-16 09:18:57

标签: regex vba ms-access

我有这段代码,但是当我使用它时,UrlTest变量返回整个URL,而不是我在正则表达式中定义的捕获组。 ^http:\/\/myanimelist\.net\/animelist\/(.*[^\/])(?:\/|)$

这是我的代码:

Private Function UrlTest(strUrl As String) As String
    'Do the regEx for get the user in url
    Dim regEx As New RegExp

    regEx.Pattern = "^http:\/\/myanimelist\.net\/animelist\/(.*[^\/])(?:\/|)$"
    regEx.IgnoreCase = True
    regEx.Global = False

    If regEx.Test(strUrl) Then
        Dim matche As Object
        Set matche = regEx.Execute(strUrl)
        If matche.Count <> 0 Then
            UrlTest = matche(0)
        End If
    Else
        UrlTest = "false"
    End If
End Function

此函数使用带有http://myanimelist.net/animelist/example值的strUrl返回相同的值,而不是我想要的值:example

我无法理解!你可以看到,这个Regex test工作!

1 个答案:

答案 0 :(得分:3)

UrlTest = matche(0).submatches(0)

你应该试试这个。