2012-12-03 15 views
7

स्वीकार करता है, मैं एक नियमित अभिव्यक्ति चाहता हूं जो केवल 0 से 9 तक और फ्लोटिंग पॉइंट नंबर स्वीकार करेगी।रेगेक्स जो फ़्लोटिंग पॉइंट नंबर और माइनस (-) साइन

कृपया मदद करें।

+0

उपयोग कर सकते हैं आप क्या कोशिश की थी? आपको क्या परेशानी हो रही है? – SLaks

+0

आप किस दशमलव विभाजक का उपयोग कर रहे हैं: ',', '.' या तो? –

+0

संभावित डुप्लिकेट [फ्लोटिंग पॉइंट के लिए रेगेक्स?] (Http://stackoverflow.com/questions/9186780/regex-for-floating-point) –

उत्तर

11

^[-+]?[0-9]*\.?[0-9]+$

  • ^ - स्ट्रिंग की शुरुआत
  • [-+]? - 0 या 1 संकेत सूचक
  • [0-9]* - 0 या अधिक पूर्णांक
  • \. - चरित्रया अधिक पूर्णांकों
  • $ - -
  • [0-9]+ (. "किसी भी चरित्र" मतलब करने के लिए regex में प्रयोग किया जाता है) स्ट्रिंग के अंत

आप के बजाय एक दशमलव विभाजक के रूप में अल्पविराम उपयोग कर रहे हैं आप उपयोग कर दोनों/या तो रहे हैं, तो \.

के बजाय , उपयोग करते हैं, आप [.,]

+0

यह केवल एक अवधि के दशमलव विभाजक के लिए अनुमति देता है, कोई चरित्र नहीं। "किसी भी चरित्र" का मतलब बैकस्लैश से छुटकारा पाएं। लेकिन फिर यह एक फ्लोटिंग पॉइंट नंबर के लिए मान्य नहीं होगा।और आपकी अंतिम वाक्य का उल्लेख '[।,] 'होना चाहिए। – rmaddy

+0

@rmaddy मुझे लगता है कि आप अपने दोनों बयान पर गलत हैं। मैं केवल के लिए अनुमति देने का इरादा रखता हूं। मूल स्ट्रिंग में दशमलव विभाजक के रूप में, इसलिए मैंने अतिरिक्त वाक्यों को जोड़ा। आखिरी वाक्य कम से कम http://regexpal.com –

+0

पर किसी भी नियमित अभिव्यक्ति के साथ काम करता है, आप केवल '[।,] ',' ' [\।,] '। लेकिन मैंने हर संभव रेगेक्स इंजन के साथ काम नहीं किया है। जब मैंने टिप्पणी की तो मुझे कुछ गलत तरीके से पढ़ना होगा क्योंकि जब मैं अब आपका जवाब देखता हूं, तो मेरी अधिकांश टिप्पणी लागू नहीं होती है। मैंने टिप्पणी के बाद से कुछ संपादन किया होगा। – rmaddy

0

^[-+]?[0-9]*[.,]?[0-9]+$ आज़माएं।

यह नियमित अभिव्यक्ति एक वैकल्पिक चिह्न से मेल खाती है, या तो उसके बाद शून्य या अधिक अंकों के बाद एक बिंदु और एक या अधिक अंक (वैकल्पिक पूर्णांक भाग वाला एक फ़्लोटिंग पॉइंट नंबर) होता है, या उसके बाद एक या अधिक अंक (पूर्णांक)।

स्रोत: http://www.regular-expressions.info/floatingpoint.html - दशमलव विभाजक के रूप अल्पविराम के साथ काम करने के लिए परिवर्तित

+0

यह उन लोकल में काम नहीं करेगा जो अवधि के अलावा दशमलव विभाजक का उपयोग करते हैं। – rmaddy

+0

धन्यवाद, संपादित। –

+0

यह वर्तमान में किसी भी वर्ण को विभाजक के रूप में उपयोग करने की अनुमति देता है। '\ .' –

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