Поскольку вы упоминаете, что работаете с BluePrism, уверены ли вы, что вам действительно нужен Regex для проверки дат?Поскольку в BP есть встроенная функция для вызова, которая вызывается непосредственно на этапе Calc - проверьте следующий пример (вы можете увидеть выражение выбранного этапа Calc на верхней панели выражений).
Функция, используемая для проверки дат: IsDate([Some date as string])
результат сохраняется в элементе данных Flag.
После проверки вы можете использовать этот элемент данных Flag в блоке Decision и делать все, что считаете нужным, если датане является фактической датой.
Примечание: конечно, если вы работаете со списками / таблицами данных на этапе кода, а не перебираете коллекцию в макете процесса, вам нужно что-то еще, но этоможет быть еще полезно.
На этапе кода я, вероятно, просто использовал бы метод DateTime.Parse(String)
, который может автоматически преобразовывать дату в виде строки в экземпляр объекта DateTime
;пример:
' DateTime.Parse throws an Exception if parsing failed.
Dim valid As Boolean = False
Try
Dim d = DateTime.Parse(First_Date)
valid = True
Catch e As Exception
valid = False
End Try
Подробнее о разборе дат с использованием DateTime.Parse на MSDN: https://msdn.microsoft.com/en-us/library/1k1skd40(v=vs.110).aspx
Здесь также есть хороший пост о разборе дат: https://stackoverflow.com/a/18465222/7439802