2013-06-27 12 views
5

मैं अपनी पहली नियमित अभिव्यक्ति लिखने के लिए कोशिश कर रहा हूँ .. मैं निम्नलिखित संयोजननियमित अभिव्यक्ति

letters [upper or lowercase] 
numbers [0-9] 
letters in parentheses [(M)] 
no spaces or other characters 

कुछ उदाहरण का मूल्य हो रही है:

OK: "A3" 
OK: "N15" 
OK: "A126" 
OK: "B6469" 
OK: "A57(M)" 
OK: "A1(M)" 

NOT OK: "TF9 3TF" 
NOT OK: "B64 69" 

मेरे नियमित समाप्ति:

^(([a-zA-Z][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9]?)|([a-zA-Z][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9][1-9]?))$ 

अपने काम करता है मेरे लिए ठीक। लेकिन मैं इसके लिए सबसे अच्छा समाधान चाहता हूं, जैसे कि मेरी नियमित अभिव्यक्ति बहुत लंबी लगती है क्योंकि प्रत्येक संयोजन के लिए मैं एक अभिव्यक्ति करता हूं और फिर इन सभी को गठबंधन करता हूं लेकिन मैं अपनी नियमित अभिव्यक्ति को कम करना चाहता हूं जैसे कि मेरे नमूना कोड में पहले वर्णमाला में संख्या हो सकती है एक या अधिक हो लेकिन 5 तक। मुझे बताएं कि मैं एक अभिव्यक्ति कैसे कर सकता हूं जो (ए 1, ए 12, ए 123, ए 1234, ए 12345) के लिए काम करेगा?

उत्तर

6

यह अत्यधिक जटिल प्रतीत होता है।

^[a-zA-Z]\d{1,5}(?:\(M\))?$ 

इसे करना चाहिए।

+0

त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद और इसके अच्छे काम .... :) – ARsl

+0

हाय @ नीट मैं इस नियमित अभिव्यक्ति का उपयोग कर रहा हूं "^ [ए-जेए-जेड] [ए-जेए-जेड -9] *" निम्नलिखित आप मुझे सुझाव दे सकते हैं कि मैं गलत था 1) पत्र [ए-जेडए-जेड] 2 से शुरू होना चाहिए) केवल अंक और अक्षरों में होना चाहिए। –

+0

@ KK_07k11A0585 आपको लगता है कि आपके मैच के अंत में एंकर करने के लिए '$' नहीं है। –

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