मेरा पहला सवाल और मैं उत्साहित ... मैं जाने के लाइव के बाद से lurked और साइट प्यार करता हूँ, लेकिन मैं किसी भी नौसिखिया त्रुटियों के लिए क्षमा चाहते हैं, स्वरूपण, आदि है ...जावा में यह डेटा YYYY-MM-DD regex क्यों विफल रहता है?
मैं प्रारूप को मान्य करने के लिए प्रयास कर रहा हूँ एक स्ट्रिंग फ़ील्ड जिसमें जावा में एक तिथि है। हम एक स्ट्रिंग में तारीख प्राप्त करेंगे, मैं इसे वास्तविक दिनांक ऑब्जेक्ट में पार्स करने से पहले अपने प्रारूप को मान्य कर दूंगा। प्रारूपित किया जा रहा प्रारूप YYYY-MM-DD प्रारूप में है। हालांकि मैं अपने परीक्षणों में से एक पर अटक कर रहा हूँ, अगर मैं "1999-12-33" परीक्षण असफल हो जायेगी में पारित (के रूप में यह एक दिन में नंबर 33 के साथ करना चाहिए) यह अधूरा पैटर्न के साथ:
((19|20)\\d{2})-([1-9]|0[1-9]|1[0-2])-([12][0-9]|3[01])
हालांकि के रूप में नीचे यह परीक्षण में सफ़ल ही मैंने बोल्ड में पात्रों है (लेकिन यह नहीं होना चाहिए)
((19|20)\\d{2})-([1-9]|0[1-9]|1[0-2])-(0[1-9]|[1-9]|[12][0-9]|3[01])
* अतिरिक्त ध्यान दें, मैं जानता हूँ कि मैं 0?[1-9]
में 0[1-9]|[1-9]
बदल सकते हैं, लेकिन मैं इसकी सबसे सरल प्रारूप करने के लिए नीचे सब कुछ को तोड़ने के लिए करना चाहता था कोशिश करने और खोजने के लिए यह क्यों काम नहीं कर रहा है।
यहाँ स्क्रैप परीक्षण मैं एक साथ रख दिया सब अलग तिथि परिदृश्यों के माध्यम से चलाने के लिए है:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class scrapTest {
public scrapTest() {
}
public static void main(String[] args) {
scrapTest a = new scrapTest();
boolean flag = a.verfiyDateFormat("1999-12-33");
}
private boolean verfiyDateFormat(String dateStr){
Pattern datePattern = Pattern.compile("((19|20)\\d{2})-([1-9]|0[1-9]|1[0-2])-(0[1-9]|[1-9]|[12][0-9]|3[01])");
Matcher dateMatcher = datePattern.matcher(dateStr);
if(!dateMatcher.find()){
System.out.println("Invalid date format!!! -> " + dateStr);
return false;
}
System.out.println("Valid date format.");
return true;
}
}
Ive के लिए प्रोग्रामिंग की गई ~ 10 साल लेकिन बहुत जावा के लिए नया है, इसलिए कुछ भी समझाने के लिए संकोच न करें जैसा कि आप फिट देखते हैं उतना ही प्राथमिक।
धन्यवाद
डॉक्स, यह यह था। .matches सही ढंग से पूरे पैटर्न से मेल खाता है। – ProfessionalAmateur
कोई समस्या नहीं, मेरी खुशी :) – miorel