Bu sorunun "kabul edilen" yanıtı hem yanlış hem de miyoptur.
0001
Geçerli bir yıl olmayan gibi dizelerle eşleşeceği için yanlıştır .
O olacağı miyop olduğunu değil 9999 Yukarıda herhangi bir değer maç zaten unuttu Y2K ? Bunun yerine normal ifadeyi kullanın:
^[1-9]\d{3,}$
Geçmişteki yılları eşleştirmeniz gerekirse, gelecekteki yıllara ek olarak, bu normal ifadeyi herhangi bir pozitif tamsayı ile eşleştirmek için kullanabilirsiniz:
^[1-9]\d*$
Geçmişten tarihler beklemeseniz bile, bu normal ifadeyi yine de kullanmak isteyebilirsiniz, sadece birisinin bir zaman makinesi icat etmesi ve yazılımınızı onlarla geri almak istemesi durumunda.
Not: Bu normal ifade, genellikle negatif bir tamsayı yerine bir BC gösterimi ile temsil edildiğinden, 1. yıldan öncekiler de dahil olmak üzere tüm yıllar eşleşecektir. Elbette, bu kural önümüzdeki birkaç bin yılda değişebilir, bu nedenle en iyi seçeneğiniz herhangi bir tamsayıyı (pozitif veya negatif) aşağıdaki normal ifadeyle eşleştirmektir:
^-?[1-9]\d*$