2012-10-02 22 views
15

मैं एक स्ट्रिंग से मेल खाने के लिए एक नियमित अभिव्यक्ति चाहता हूं जो प्लस प्रतीक से शुरू हो या न हो और फिर अंकों की संख्या हो।रेगेक्स किसी वैकल्पिक '+' प्रतीक से मेल खाने के लिए

उन

+35423452354554 
    or 
    3423564564 

उत्तर

21

मिलान किया जाना चाहिए यह काम करना चाहिए

\+?\d+ 

पंक्ति के आरंभ में मेल एक वैकल्पिक + और अंक के बाद यह

संपादित करें:

के रूप में ओपी के स्पष्टीकरण के अनुरोध: 3423kk55 मिलान किया गया है क्योंकि तो यह पहला हिस्सा है (3423)। एक पूरी स्ट्रिंग मिलान करने के लिए केवल इस के बजाय का उपयोग करें: इसके लिए

^\+?\d+$ 
1

एक पर्ल नियमित अभिव्यक्ति हो सकता है:

\+?\d+ 

\+ एक का अर्थ है: \+?\d+

7

यह कुछ इस तरह दिखाई देंगे शाब्दिक प्लस साइन, ? का अर्थ है कि पिछले समूह (प्लस साइन) 0 या 1 बार दिखाई दे सकता है, \d एक अंक वर्ण इंगित करता है, और अंतिम + की आवश्यकता है कि पिछले समूह (अंक) एक या अधिक बार प्रकट होता है।

संपादित करें: मन में नियमित अभिव्यक्ति, भालू का उपयोग करते समय के बीच एक अंतर और मैचों लगता है यह है कि (जावा में कम से कम, हालांकि ज्यादातर regex कार्यान्वयन समान तरीकों है)। को स्वामित्व वाली स्ट्रिंग में कहीं भी सबस्ट्रिंग मिल जाएगी, और मैचों पैटर्न के विरुद्ध पूरी स्ट्रिंग से मिलान करने का प्रयास करेगा, अगर इससे पहले या बाद में अतिरिक्त वर्ण हैं तो विफल हो जाएंगे। आप सही विधि का उपयोग कर रहे सुनिश्चित करें, और याद है कि आप (पूरे बात ^\+?\d+$ की तरह लग रहे बनाने पंक्ति के अंत के लिए मजबूर करने पंक्ति के आरंभ और एक $ मजबूर करने के लिए एक ^ जोड़ सकते हैं।

4

सरल ^\+?\d+$

स्टार्ट लाइन, फिर 1 या 0 प्लस संकेत, उसके बाद कम से कम 1 अंक, फिर lnie

का अंत
संबंधित मुद्दे

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