Что не так с моим регулярным выражением MM / DD / YYYY в JENKINS - PullRequest
0 голосов
/ 01 мая 2020

Мне нужно проверить формат даты в ММ / ДД / ГГГГ. Нуль также действителен в моем сценарии. Это мое регулярное выражение [0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |

На следующем рисунке показана конфигурация задания с моим регулярным выражением

Jenkins config

ОШИБКА

Job error

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Я бы сделал начальную проверку с помощью

^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$

Я добавил ^, чтобы указать начало строки, и я удалил | (это оператор объединения, ИЛИ) с конца вашего оригинального регулярного выражения. Я проверял это здесь .

1 голос
/ 01 мая 2020

Я изменил оригинал следующим образом:

^(?:(?:(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec))(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:(?:0?2|(?:Feb))(\/|-|\.)(?:29)\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

Проверьте здесь регулярное выражение

0 голосов
/ 01 мая 2020

После знака $ у вас есть пробел, поэтому введенные данные не совпадают.

[0-9]{2}\/[0-9]{2}\/[0-9]{4}$ |
//                    here __^

Удалите его ([0-9]{2}\/[0-9]{2}\/[0-9]{4}$) и, если вы хотите принять пустую строку, добавьте пустую строку с помощью группу и добавьте начало привязки строки:

^([0-9]{2}\/[0-9]{2}\/[0-9]{4}|)$

или, что лучше, сделайте группу необязательной

^([0-9]{2}\/[0-9]{2}\/[0-9]{4})?$

Демонстрация и объяснение

...