एक साधारण रेगेक्स लिखना, लेकिन मैं इस पर कभी भी बहुत अच्छा नहीं रहा हूं।जावा रेगेक्स ए-जेड, ए-जेड, 0-9 और (।) (_) (-)
जो मैं करने की कोशिश कर रहा हूं वह यह सुनिश्चित करने के लिए एक स्ट्रिंग (फ़ाइल नाम) की जांच करें कि इसमें केवल ए-जेड, ए-जेड, 0-9 या विशेष वर्ण अंडरस्कोर (_) अवधि (।) या डैश (-) शामिल हैं।
यहाँ मैं क्या
if(filename.length() < 1 || !filename.matches("^[a-zA-Z0-9[.][_][-]]+"))
return false;
else
return true;
है यह काम करने के लिए प्रकट होता है, लेकिन मेरे लिए बहुत ही सुंदर नहीं लगती है। क्या यह लिखने के लिए एक बेहतर/अधिक पठनीय तरीका है?
अग्रिम धन्यवाद! बस इन बगर्स को बेहतर तरीके से लिखना सीखने की कोशिश कर रहा है।
-Will
दूसरों अच्छी तरह regex सवाल का जवाब दे दिया है, लेकिन मैं उत्सुक हूँ तुम क्यों जाँच स्ट्रिंग की लंबाई की तुलना में 1. अधिक है, तो स्ट्रिंग "है", यह मेल नहीं खा सकता '" ^। + "' – kojiro
अच्छी बात। यह पिछले कार्यान्वयन से बचा था। धन्यवाद! –