2011-01-21 6 views
30

मुझे एक नियमित अभिव्यक्ति की आवश्यकता है जिसके लिए कम से कम एक अंक और अधिकतम अधिकतम की आवश्यकता है।6 अंक नियमित अभिव्यक्ति

मैंने यह काम किया है, लेकिन उनमें से कोई भी काम नहीं करता है।

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$ 

^[0-999999]$ 

कोई अन्य सुझाव?

उत्तर

81

आप 1 अंकों की न्यूनतम और के रूप में 6 अंक की अधिकतम निर्दिष्ट करने के लिए सीमा परिमाणक {min,max} उपयोग कर सकते हैं:

^[0-9]{1,6}$ 

स्पष्टीकरण:

^  : Start anchor 
[0-9] : Character class to match one of the 10 digits 
{1,6} : Range quantifier. Minimum 1 repetition and maximum 6. 
$  : End anchor 

क्यों अपने रेगुलर एक्सप्रेशन से काम नहीं किया?

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$ 

जब से तुम \ साथ यह पूर्ववर्ती द्वारा ? भाग गए थे, ?0 या 1 के लिए (एक regex मेटा-चरित्र के रूप में कोई और अधिक काम कर रहा था:

आप regex पर लगभग करीब थे पुनरावृत्ति) लेकिन शाब्दिक रूप से इलाज किया जा रहा था।

इसे ठीक करने के लिए बस \ हटाएं और आप वहां हैं।

See it on rubular

क्वांटिफ़ायर आधारित रेगेक्स छोटा, अधिक पठनीय है और इसे आसानी से किसी भी संख्या में बढ़ाया जा सकता है।

आपकी दूसरी regex:

^[0-9]$ 

जो ठीक एक अंक के साथ तार से मेल खाता है:

^[0-999999]$ 

के बराबर है। वे समकक्ष हैं क्योंकि एक वर्ण वर्ग [aaaab][ab] जैसा ही है।

+5

+1 जैसा कि शीर्षक बताता है, एक नोट जोड़ा जा सकता है कि 6 अंकों की संख्या से मेल खाने के लिए, किसी को '[0-9] {6} 'का उपयोग करना चाहिए, और यदि आवश्यक हो तो एंकर जोड़ें। –

+1

के लिए –

3

^[0-9]{1,6}$ इसे करना चाहिए। मुझे पता नहीं है कि वीबी.नेट इतना अच्छा है कि यह वही है या नहीं।

उदाहरण के लिए, Wikipedia पर एक नज़र डालें।

+0

आप अंत एंकर खो रहे हैं। विस्तारित स्पष्टीकरण – codaddict

15
^\d{1,6}$ 

....................

+1

छोटा और मीठा। मैंने फ़ाइल में सभी 7 अंकों की संख्या प्राप्त करने के लिए नोटपैड ++ के टेक्स्टएफएक्स ढूंढें/बदलें सुविधा के साथ इस \ d {7,7} की विविधता का उपयोग किया। मुझे जिस समाधान की आवश्यकता है, उसके लिए अग्रणी होने के लिए बहुत धन्यवाद। –

+4

चूंकि '\ d' और' [0-9] 'हमेशा समान नहीं होते हैं [(इस पोस्ट को देखें)] (http://stackoverflow.com/q/890686/1447415), '^ [0-9] {1,6} $ 'समाधान बेहतर हो सकता है। – Johan

+0

सरल और प्रभावी। – ksooklall

6

आप

^[0-9]{1,6}$ 

यह काम करना चाहिए की कोशिश कर सकते।

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