Я работаю над регулярным выражением, которое должно допускать формат yyyymmdd-nn. (4-значный год между 2010 и 2059 годами, 2-значный месяц, 2-значный день, тире, а затем значение от 01 до 99).Нужно регулярное выражение, чтобы пустые значения
Это работает ... (20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])
Вторая часть является то, что мне нужно, чтобы пустое значение. В идеале я бы хотел, чтобы он был нулевым, но это нормально, если это невозможно, и пользователь вводит до 11 пробелов.
Я пробовал различные варианты использования \ S
(\s{0-11})|(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])
(\s?)|(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])
(\s*)(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])
.
Все это говорит мне, что существует бесконечное количество возможностей.
Я также пробовал ...
(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])|null
(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])?
^(20[1-5]\d(0|1)\d[0-3]\d-\d[1-9])?$
Ни один из них, кажется, чтобы пустое значение либо.
Может ли кто-нибудь сказать мне, что мне нужно добавить в мое регулярное выражение, чтобы позволить пустому?
Вы так близко. Попробуйте '^ (20 [1-5] \ d (0 | 1) \ d [0-3] \ d- \ d [1-9] |) $'. – ClasG
Вы пытались начать с (\\ s *), вам может потребоваться двойная обратная косая черта. – Hughzi