Проверка даты RPA(blueprism)

Я пытаюсь проверить дату, которая исходит из листа Excel, формат должен быть в формате дд/мм/гггг, я пробовал с шаблоном регулярного выражения [0-9]{2}/[0-9]{2}/[0- 9]{4}, но это не будет работать с датой, состоящей из одной цифры, и поскольку мы не можем добавить 0 в начале листа Excel, этот шаблон не работает. (это для инструмента blueprism, у которого есть действие для сопоставления регулярных выражений)


person Ankhush singh    schedule 28.05.2018    source источник
comment
{2} означает длину 2. Вы можете использовать {1,2}, чтобы указать длину 1 или 2.   -  person ryantxr    schedule 28.05.2018
comment
Возможный дубликат Regex для проверки формата даты дд/мм/гггг   -  person Andrzej Kaczor    schedule 29.05.2018
comment
привет, но это не работает с действием регулярного выражения в blueprism   -  person Ankhush singh    schedule 29.05.2018
comment
Это работает для меня, можете ли вы сказать мне, как вы подходите к проблеме? В каких случаях не работает?   -  person Andrzej Kaczor    schedule 30.05.2018


Ответы (3)


Чтобы обеспечить требуемую устойчивость, вам придется принять 1 или 2 цифры как для dd, так и для mm:

[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}
person esqew    schedule 28.05.2018
comment
Привет, эскью, так как я проверяю даты, они не должны принимать значения больше 31, 12 или 30 в зависимости от месяцев... как мы можем это сделать? - person Ankhush singh; 29.05.2018
comment
@ankhush, который, вероятно, лучше подходит для нового, более специфичного для регулярных выражений вопроса, но, вероятно, это будет дубликат это ТАК вопрос. - person esqew; 30.05.2018

Поскольку вы упоминаете, что работаете с BluePrism, вы уверены, что вам действительно нужно регулярное выражение для проверки дат? Поскольку BP имеет встроенную функцию для этого вызываемого объекта непосредственно внутри этапа Calc — проверьте следующий пример (вы можете увидеть выражение выбранного этапа Calc в верхней панели выражений).

Для проверки дат используется функция IsDate([Some date as string]), результат сохраняется в элементе данных Flag.

введите описание изображения здесь После проверки вы можете использовать этот элемент данных «Пометить» в блоке «Решение» и делать все, что считаете нужным, если дата не является фактической датой.

Примечание. Конечно, если вы работаете со списками/таблицами данных на этапе кода, а не перебираете коллекцию в макете процесса, вам нужно что-то еще, но это все равно может быть полезно.

На этапе кода я бы, вероятно, просто использовал метод 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

person Miroslav Javorský    schedule 18.07.2018

В синей призме вы можете использовать

FormatDate(Now(), FormatOfDate)

Для сравнения двух дат сначала преобразуйте («FormatDate») в один и тот же формат, а затем вы можете сравнить.

Для параметра «FormatDate» вы можете обратиться к справке Blue prism и выполнить поиск dateadd --> выберите «Расчет и решение».

person Vijay Dodamani    schedule 02.11.2018