इस प्रश्न का "स्वीकृत" उत्तर गलत और मायोपिक दोनों है।
यह गलत है कि यह ऐसे तार से मेल खाएगा 0001
, जो एक वैध वर्ष नहीं है।
यह मायोपिक है कि यह 9999 से ऊपर किसी भी मूल्य से मेल नहीं खाएगा। क्या हम पहले ही वाई 2 के के सबक भूल गए हैं ? इसके बजाय, नियमित अभिव्यक्ति का उपयोग करें:
^[1-9]\d{3,}$
यदि आपको भविष्य में वर्षों के अलावा, अतीत में वर्षों का मिलान करने की आवश्यकता है, तो आप किसी भी सकारात्मक पूर्णांक से मेल खाने के लिए इस नियमित अभिव्यक्ति का उपयोग कर सकते हैं:
^[1-9]\d*$
यहां तक कि अगर आप अतीत से तारीखों की उम्मीद नहीं करते हैं, तो आप इस नियमित अभिव्यक्ति का उपयोग करना चाह सकते हैं, वैसे ही जब कोई किसी समय मशीन पर आक्रमण करता है और अपने सॉफ़्टवेयर को उनके साथ वापस लेना चाहता है।
नोट: यह नियमित अभिव्यक्ति सभी वर्षों से मेल खाएगी, जिसमें वर्ष 1 से पहले के लोग भी शामिल हैं, क्योंकि वे आमतौर पर एक नकारात्मक पूर्णांक के बजाय बीसी पदनाम के साथ प्रतिनिधित्व करते हैं। बेशक, यह सम्मेलन अगले कुछ सदियों में बदल सकता है, इसलिए आपका सबसे अच्छा विकल्प किसी भी पूर्णांक के साथ मेल खाना है - सकारात्मक या नकारात्मक - निम्नलिखित नियमित अभिव्यक्ति के साथ:
^-?[1-9]\d*$