Мне нужно регулярное выражение для проверки шаблона - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно регулярное выражение для проверки шаблона, шаблон может быть комбинацией следующего списка,

  • yyyy: текущий год
  • yy: последние 2 цифры текущего года
  • MM: текущий месяц
  • dd: текущий день
  • HH: текущий час
  • mm: текущая минута
  • ss: текущая секунда
  • fff: текущая милисекунда
  • ff: текущая 1/100 секунды
  • R: случайные цифры

Правила

Можно разрешить минимум 16 и максимум 20 символов.

Мы должны иметь возможность добавлять символы исправления только заглавными буквами (например, yyyyAAddmmss здесь AA - фиксированное значение)

Мы должны экранировать фиксированный символ (например, \R, тогда R не заменяется)

Только HMR символов должны быть разрешены экранировать как '\H' или '\M' или '\R', поскольку эти символы e в шаблоне.

Шаблон должен содержать не менее 4 случайных цифр (например, yyRMMRddRHHRmmRss)

Он должен содержать цифры 0-9

В нем не должно быть специальных символов.

Пример такого допустимого шаблона

yyyyMMddHHmmssff
yyyyMMddHHmmssffR
AByyyyMMddHHmmssRRRR
AByyyy\RMMddHHRRmmRR
\Myy\HMMdd\RRHHmmss99RR

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Шаблон должен содержать как минимум 4 случайные цифры (например, yyRMMRddRHHRmmRss)

Вы запрашиваете что-то, что может не дать одно уникальное совпадение.

Например, образец 20110221318763521 может быть сопоставлен разными способами:

20110221318323521
yyRMMRddRHHRmmRss => 20-10-21 18:23:21
yyMMRRddRHHRmmRss => 20-11-21 18:23:21
yyRRMMddRHHRmmRss => 20-02-21 18:23:21
yyRMMRddRHHmmRssR => 20-10-21 18:32:52
...

0 голосов
/ 10 апреля 2020

Что такое ff ? Это current-milliseconds/100 или current-seconds/100?

Если это current-milliseconds/100 , используйте это регулярное выражение

\d{2}(\d{2})(\w{3})(\d{2})(\d{2})(\d{2})(\d{13})(\d{11}.\d{2})(\d+)

...