ऊपर regexp के बाद से यह "09" जो एक वैध संख्या नहीं है स्वीकार करता है सही नहीं है। एक बेहतर अभिव्यक्ति होगा:
"^(-?)(0|([1-9][0-9]*))(\\.[0-9]+)?$"
जहां: "(। \ [0-9] * [1-9])?"
1. is an optional negative sign;
2. is zero or a valid non-zero integer;
4. is the optional fracture part;
सिद्धांत रूप में, अस्थिभंग भाग के रूप में लिखा जाना चाहिए इसके बजाए, क्योंकि किसी संख्या में पूंछ शून्य नहीं होनी चाहिए। व्यवहार में, स्रोत स्ट्रिंग अंक, उदा, की एक निश्चित संख्या के साथ बनाया गया हो सकता है:
printf("%.1f", x);
तो यह आसानी से एक शून्य वर्ण के साथ समाप्त हो सकता है। और, ज़ाहिर है, ये सभी निश्चित बिंदु प्रतिनिधित्व हैं, न कि खुद को युगल। एक डबल नंबर -1.23e-4 के रूप में लिखा जा सकता है -0.00के बजाय।
तुम्हें क्या लगता है यह काम नहीं करता हो? एक उदाहरण दें। –
@AndrewLogvinov +1, "गिम्मी तेह codez काम नहीं करता है" एक अच्छा सवाल रूप नहीं है। –
शायद शुरुआत या अंत में व्हाइटस्पेस? क्या आप इसका उपयोग कर रहे कोड को पोस्ट कर सकते हैं? –