2010-02-22 16 views
5

मैं कैसे की जाँच करेगा जावा में एक स्ट्रिंग इनपुट प्रारूप है:विशेष जावा नियमित अभिव्यक्ति

xxxx-xxxx-xxxx-xxxx

जहां X एक अंक 0..9 है?

धन्यवाद!

+2

मेरा उत्तर हटा दिया - मैंने अपने सिर में "जावास्क्रिप्ट" पढ़ा: पी –

उत्तर

3

जावा में स्ट्रिंग वस्तुओं एक matches विधि है जो एक नियमित अभिव्यक्ति के खिलाफ जांच कर सकते हैं:

myString.matches("^\\d{4}(-\\d{4}){3}$") 

चार अंक के लिए यह विशेष रूप से अभिव्यक्ति की जाँच करता है, और फिर तीन बार (एक हाइफन और चार अंक), इस प्रकार का प्रतिनिधित्व करने के लिए अपने आवश्यक प्रारूप

+0

नोट: मैंने इसे फिर से संपादित किया क्योंकि मैंने एंकरों को छोड़ दिया था। एंकर संस्करण का प्रयोग करें, बिना किसी के। – Joey

+0

इसे क्यों कम नहीं किया जा सका: myString.matches ("(- \\ d {4}) {4}"); –

+0

@ एमीर: क्योंकि आपकी स्ट्रिंग को तब एक हाइफ़न से शुरू करना होगा। – Joey

4

शुरू करने के लिए, यह regexps का एक बड़ा स्रोत है: http://www.regular-expressions.info। इसे देखें, पोक करें और चारों ओर खेलते हैं। इसके अलावा java.util.Pattern एपीआई में रेगेक्स पैटर्न के संक्षिप्त overview है।

अब, अपने प्रश्न पर वापस जाएं: आप चार अंकों के लगातार चार समूहों को एक हाइफ़न से अलग करना चाहते हैं।

\d{4}-\d{4}-\d{4}-\d{4} 

इसे कम तुम भी की एक एकल समूह का प्रतिनिधित्व कर सकते हैं बनाने के लिए: 4 अंक की एकल समूह regex में के रूप में

\d{4} 

एक हाइफन से अलग कर दिया उन लोगों में से चार दर्शाया जा सकता है के रूप में प्रतिनिधित्व किया जा सकता है चार अंक और चार अंक की लगातार तीन समूहों आगे हाइफ़न के साथ:

\d{4}(-\d{4}){3} 

अब, जावा में आप String#matches() उपयोग कर सकते हैं एक स्ट्रिंग दी से मेल खाता है कि क्या परीक्षण करने के लिए regex।

boolean matches = value.matches("\\d{4}(-\\d{4}){3}"); 

ध्यान दें कि मैं बैकस्लैश एक और बैकस्लैश \ द्वारा \ बच गए, क्योंकि बैकस्लैश String में एक विशेष अर्थ नहीं होता। वास्तविक बैकस्लैश का प्रतिनिधित्व करने के लिए, आपको \\ का उपयोग करना होगा।

+0

उनके पास स्ट्रिंग क्लास का विशेष अर्थ नहीं है। उनके पास कंपाइलर के लिए एक विशेष अर्थ है। – Joey

+1

गीज़, मैंने 3 मिनट का प्रयास किया और पहले ही एक स्वीकार्य उत्तर है। – BalusC

+0

@ जोहान्स: प्रयास के लिए नाइटपिक :) – BalusC

संबंधित मुद्दे