नियमित अभिव्यक्ति में, मुझे यह जानने की आवश्यकता है कि एक चीज़ या किसी अन्य से मिलान करने के लिए, या दोनों (क्रम में)। लेकिन कम से कम एक चीज वहां होने की जरूरत है।एक नियमित अभिव्यक्ति में, एक चीज़ या किसी अन्य से मेल खाते हैं, या दोनों
उदाहरण के लिए, निम्नलिखित नियमित अभिव्यक्ति
/^([0-9]+|\.[0-9]+)$/
234
और
से मेल खाएगी.56
नहीं बल्कि
234.56
निम्नलिखित नियमित अभिव्यक्ति
/^([0-9]+)?(\.[0-9]+)?$/
ऊपर तार के सभी तीन से मेल करते हैं, लेकिन यह भी रिक्त स्ट्रिंग, करते हैं जो हम नहीं चाहते से मेल खाएगी।
मुझे कुछ ऐसी चीज चाहिए जो उपरोक्त सभी तीन तारों से मेल खाती है, लेकिन खाली स्ट्रिंग नहीं। क्या ऐसा करने का कोई आसान तरीका है?
अद्यतन:
दोनों एंड्रयू और जस्टिन सरल उदाहरण मैं प्रदान की के लिए काम करते नीचे है, लेकिन वे नहीं है (जब तक कि मैं गलत हूँ) वास्तविक उपयोग के मामले है कि मैं हल करने के लिए उम्मीद कर रही थी के लिए काम करते हैं, तो मुझे शायद इसे अभी में रखना चाहिए।
/^\s*-?0*(?:[0-9]+|[0-9]{1,3}(?:,[0-9]{3})+)(?:\.[0-9]*)?(\s*|[A-Za-z_]*)*$/
यह
45
45.988
45,689
34,569,098,233
567,900.90
-9
-34 banana fries
0.56 points
से मेल खाते हैं, लेकिन यह
.56
से मेल नहीं खाएगी और मैं इसे ऐसा करने की जरूरत: यहाँ वास्तविक regexp मैं उपयोग कर रहा हूँ है।
कौन सी भाषा/रेगेक्स स्वाद? –
मैं जावास्क्रिप्ट का उपयोग कर रहा हूँ। – rharrington
आपका संपादन चीजों को जटिल बनाता है, लेकिन आप अभी भी इसे काफी सरल बना सकते हैं, खासकर यदि आप पहले व्हाइटस्पेस पर विभाजित होते हैं। मेरा संपादन देखें। –