Пожалуйста, помогите мне, почему это регулярное выражение не работает, когда дело доходит до даты 20 лет. Но это работает, если я беру дату отдельно как отдельное Regex.thanks в Advance.Java regex yyyymmdd validation
String regex = "^(0?[1-9]|[12][0-9]|3[01])?" ;
checkRegex("02", regex);
checkRegex("22", regex);
checkRegex("20", regex);
String regex1 = "^(((19\\d\\d)|([2-9]\\d\\d\\d))\\d\\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])?" ;
checkRegex("19990802", regex1);
checkRegex("19990822", regex1);
checkRegex("19990820", regex1);
Выход:
02::::^(0?[1-9]|[12][0-9]|3[01])?::::true
22::::^(0?[1-9]|[12][0-9]|3[01])?::::true
20::::^(0?[1-9]|[12][0-9]|3[01])?::::true
19990802::::^(((19\d\d)|([2-9]\d\d\d))\d\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])?::::true
19990822::::^(((19\d\d)|([2-9]\d\d\d))\d\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])?::::true
19990820::::^(((19\d\d)|([2-9]\d\d\d))\d\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])?::::false
downvoters Комментарий pls. – sunleo
вы можете найти рабочее регулярное выражение здесь ... http://stackoverflow.com/questions/4766845/yyyymmdd-date-format-regular-expression-to-validate-a-date-in-c-sharp-net , но, как говорится в некотором ответе, не рекомендуется использовать регулярное выражение для этого ... –
, который вы должны настаивать на том, чтобы я не использовал, если он работает. Я буду использовать. Если вам не нравится просто оставить, не пытайтесь найти ошибку в других. Если у вас есть знания, сначала разрешите проблему. Ссылка, которую вы показали, не имеет ничего общего с моей реализацией. – sunleo