मैंने regExp को कुछ बार छोड़ दिया है लेकिन अभी भी एक विशेषज्ञ होने से बहुत दूर है। इस बार मैं regExp द्वारा एक सूत्र (या गणित अभिव्यक्ति) को सत्यापित करना चाहता हूं। यहां कठिन हिस्सा फॉर्मूला में उचित प्रारंभिक और समापन कोष्ठक को मान्य करना है।
मेरा मानना है कि वेब पर कुछ नमूना होगा लेकिन मुझे यह नहीं मिला। क्या कोई इस तरह के उदाहरण के लिए एक लिंक पोस्ट कर सकते हैं? या किसी अन्य माध्यम से मेरी मदद करो?RegExp एक सूत्र को सत्यापित करने के लिए (मिलान किए गए कोष्ठक के साथ गणित अभिव्यक्ति)?
उत्तर
मिलान किए गए नेस्टेड कोष्ठक वाली भाषा नियमित भाषा नहीं होती है और इसलिए नियमित अभिव्यक्तियों द्वारा पहचाना नहीं जा सकता है। नियमित अभिव्यक्ति के कुछ कार्यान्वयन (उदाहरण के लिए .NET ढांचे में) के पास इस से निपटने के लिए एक्सटेंशन हैं लेकिन यह वास्तव में काम करने में कोई मजेदार नहीं है। तो मैं एक उपलब्ध पार्सर का उपयोग करने या अपने आप को एक सरल पार्सर (मज़े के लिए) लागू करने का सुझाव देता हूं।
.NET कार्यान्वयन में विस्तार के लिए MSDN on balancing groups देखें।
यदि आपकी गणितीय अभिव्यक्ति में मिलान किए गए नेस्टेड कोष्ठक शामिल हैं, तो यह नियमित व्याकरण नहीं है बल्कि एक संदर्भ मुक्त है और इस तरह, रेगेक्स का उपयोग करके पार्स नहीं किया जा सकता है।
+1 जैसा कि आपने मेरे मुंह से शब्दों को लिया था। हालांकि कोई बैकट्रैकिंग के करीब हो सकता है लेकिन यह सीमित है और यह बिल्कुल स्पष्ट है, एक हैक और एक संकेत जो आप नौकरी के लिए गलत उपकरण का उपयोग कर रहे हैं। –
बेहतर शब्द: * regex कार्यान्वयन का उपयोग करके पार्स नहीं किया जा सकता है * रिकर्सिव मिलान * (पर्ल, PHP और .NET * कर सकते हैं * का समर्थन नहीं कर रहा है)। –
@ बार्ट - उन्होंने भाषा निर्दिष्ट नहीं की है, इसलिए मुझे लगता है कि यह मानक रेगेक्स है, न कि पर्ल के – DVK
- 1. भुगतान किए गए आईओएस ऐप को सत्यापित करने के लिए
- 2. मिलान कोष्ठक को संतुलित करने के लिए RegEx का उपयोग
- 3. RegEx कोष्ठक के बीच सामान मिलान करने के लिए
- 4. गणित समीकरण में नेस्टेड कोष्ठक को संभालने के लिए नियमित अभिव्यक्ति का उपयोग करें?
- 5. जावास्क्रिप्ट मिलान किए गए समूह
- 6. नियमित अभिव्यक्ति मिलान करने के लिए "|"
- 7. न्यूजीलैंड फोन नंबरों को सत्यापित करने के लिए नियमित अभिव्यक्ति
- 8. कैसे regex के साथ एक अभिव्यक्ति के बाद पहला शब्द मिलान करने के लिए?
- 9. RegExp मिलान स्ट्रिंग मेरे
- 10. नियमित अभिव्यक्ति के साथ मिलान लाइन ब्रेक
- 11. XML मिलान किए गए टैग को पार्स करने में त्रुटि
- 12. गणित के साथ संपादक
- 13. "मिलान कुछ भी नहीं" के लिए नियमित अभिव्यक्ति वाक्यविन्यास?
- 14. मिलान करने वाले कोष्ठक को हाइलाइट करने के लिए मैं विम कैसे प्राप्त करूं?
- 15. बेमेल किए गए कोष्ठक: उन्हें ढूंढने का एक त्वरित तरीका?
- 16. गणित अभिव्यक्ति को सरल बनाने के लिए रणनीति
- 17. नियमित अभिव्यक्ति मिलान के लिए ग्रोवी वाक्यविन्यास
- 18. फ़ाइल नामों को सत्यापित करने के लिए जावास्क्रिप्ट रेगेक्स
- 19. जावास्क्रिप्ट - दिनांक प्रारूप को सत्यापित करने के लिए रेगेक्स
- 20. लेटेक्स बड़े डिवीजन साइन इन गणित सूत्र
- 21. अजीब का उपयोग कर मिलान किए गए regex पैटर्न मुद्रित करने के लिए कैसे?
- 22. यह सत्यापित करने के लिए एक नियमित अभिव्यक्ति का उपयोग करना है कि इनपुट में कोई गैर अंकों है
- 23. ओकैमल: किसी अन्य के अंदर मिलान अभिव्यक्ति?
- 24. एक प्रतिनिधि को सत्यापित करने के लिए Moq
- 25. नियमित अभिव्यक्ति 6-15 अल्फान्यूमेरिक वर्णों के साथ मिलान करने के लिए कुंजीपटल
- 26. NLME वस्तुओं के साथ एक समारोह कॉल और एक सूत्र
- 27. पेज गिनती की गणना करने के लिए सबसे सरल सूत्र?
- 28. अंग्रेजी पाठ को टोकनिंग के लिए Regexp
- 29. एक इंफिक्स अभिव्यक्ति (कोष्ठक के साथ) को बाइनरी पेड़ में परिवर्तित करना
- 30. regexp के साथ एक्स और वाई के बीच संख्याओं को कैसे मिलान करें?
मैं इस RegExp को एक विशेषता के मान को सत्यापित करने के लिए XML स्कीमा में एक पैटर्न के रूप में उपयोग करना था। इस संदर्भ में कोई सुझाव? – WSK
* लेकिन यह वास्तव में काम करने के लिए कोई मजेदार नहीं है * एक अल्पमत है! ऐसे राक्षसों को विच्छेदन करने की कोशिश करना एक दुःस्वप्न है! :) –
यदि आप एक्सएमएल फ़ील्ड से उपलब्ध टूल्स का उपयोग करना चाहते हैं तो आप एक्सएसएलटी का उपयोग करने का प्रयास कर सकते हैं। एक्सएसएलटी एक ट्यूरिंग-पूर्ण भाषा है और इसलिए नौकरी करने में सक्षम है लेकिन मैं वास्तव में यह नहीं बता सकता कि यह कितना प्रयास करेगा और यदि परिणाम कोड का एक अच्छा टुकड़ा होगा। –