Регулярное выражение VB6 для соответствия дате нуждается в настройке - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь использовать регулярное выражение VB6 с группами захвата для анализа и перестановки строки:

Dim innfilename As String
Dim outfilename As String
innfilename = "4.6.12.Jack&DianeWedding004.jpg"
outfilename = innfilename

Dim regexB As RegExp
Dim regexBMatchCol As MatchCollection
Dim regexBMatch As Match
Set regexB = New RegExp
regexB.IgnoreCase = True
regexB.Global = True
regexB.Pattern = "^(\d{1,2})\.(\d{1,2})\.(\d{2,4})\.(.*)$"
Set regexBMatchCol = regexB.Execute(innfilename)

If regexBMatchCol.Count > 0 Then
    Set regexBMatch = regexBMatchCol(0)
    mnth = regexBMatch.SubMatches(0)
    dayy = regexBMatch.SubMatches(1)
    year = regexBMatch.SubMatches(2)
    remd = regexBMatch.SubMatches(3)
    yearInt = Val(year)
    mnthInt = Val(mnth)
    dayyInt = Val(dayy)
    If yearInt >= 70 And yearInt <= 99 Then
        year = "19" & year
    Else
        year = "20" & year
    End If
    If mnthInt >= 1 And mnthInt <= 9 Then
        mnth = "0" & mnth
    End If
    If dayyInt >= 1 And dayyInt <= 9 Then
        dayy = "0" & dayy
    End If
    outfilename = year & "." & mnth & "." & dayy & "." & remd
End If

но мое регулярное выражение не работает, т. Е. RegexBMatchCol.Count оказывается равным нулю. Кто-нибудь может определить мою ошибку?

ТИА

Все еще учусь, Стив

1 Ответ

0 голосов
/ 25 июня 2015

Если вы хотите сопоставить дату, используя регулярное выражение с шаблоном MM.DD.YYYY, используйте это:

regexB.Pattern = "(\d{1,2})\.(\d{1,2})\.(\d{2,4})"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...