Примеры:
2011-01-01
2011-01-01,2011-01-28,2011-12-31
и т.д.
Мне не нужно проверять правильность самих дат, просто список в правильном формате.
Я использую:
^ [0-9] + ([0-9] +) * $
Для сопоставления списка чисел, разделенных запятыми, и:
^ [0-9] {4} - [0-9] {2} - [0-9] {2} $
соответствует одной дате в желаемом формате, но:
^ [0-9] {4} - [0-9] {2} - [0-9] {2} + ([0-9] {4} - [0-9] {2} - [0-9] {2} +) * $ * +1028 *
Кажется, не работает, и я не уверен, почему.
На тот случай, если проблема на самом деле связана с моей функцией Excel VBA, я добавлю это и здесь:
Public Function ValidDateList(ByVal value As String) As Boolean
Dim oRegEx As Object
Set oRegEx = CreateObject("VBScript.RegExp")
With oRegEx
.Pattern = "^[0-9]{4}-[0-9]{2}-[0-9]{2}+(,[0-9]{4}-[0-9]{2}-[0-9]{2}+)*$"
ValidDateList = .test(value)
End With
Set oRegEx = Nothing
End Function