एसओ का कोई दिन नहीं है जो नियमित एक्सप्रेशंस के साथ पार्सिंग (एक्स) एचटीएमएल या एक्सएमएल के बारे में सवाल पूछे बिना गुजरता है।
हालांकि इस कार्य के लिए रीजैक्स की गैर-व्यवहार्यता को प्रदर्शित करने वाले या अवधारणा का प्रतिनिधित्व करने के लिए अभिव्यक्ति के संग्रह के साथ प्रदर्शन करना अपेक्षाकृत आसान है , फिर भी मुझे एसओ पर औपचारिक स्पष्टीकरण नहीं मिला कि यह आम आदमी के लिए क्यों संभव नहीं है। शर्तों।
इस साइट पर अब तक मिले एकमात्र औपचारिक स्पष्टीकरण शायद बेहद सटीक हैं, लेकिन स्व-सिखाया प्रोग्रामर के लिए भी काफी गूढ़ हैं:
दोष यह है कि HTML एक चॉम्स्की टाइप 2 व्याकरण (संदर्भ मुक्त व्याकरण) है और RegEx एक चॉम्स्की टाइप 3 व्याकरण (नियमित अभिव्यक्ति) है
या:
नियमित अभिव्यक्ति केवल नियमित भाषाओं से मेल खा सकती है लेकिन HTML एक संदर्भ-मुक्त भाषा है।
या:
एक परिमित ऑटोमेटन (जो एक नियमित अभिव्यक्ति अंतर्निहित डेटा संरचना है) में उस राज्य के अलावा मेमोरी नहीं है और यदि आपके पास मनमाने ढंग से गहरे घोंसले के शिकार हैं, तो आपको एक मनमाने ढंग से बड़े ऑटोमेटोन की आवश्यकता होती है, जो एक परिमित ऑटोमेटन की धारणा से टकराता है।
या:
नियमित भाषाओं के लिए पम्पिंग लेम्मा यही कारण है कि आप ऐसा नहीं कर सकते।
[उचित होने के लिए: विकिपीडिया पृष्ठों के लिए उपरोक्त व्याख्या लिंक के अधिकांश, लेकिन ये स्वयं के उत्तरों की तुलना में समझने में बहुत आसान नहीं हैं]।
तो मेरा प्रश्न है: क्या कोई व्यक्ति आम तौर पर ऊपर दिए गए औपचारिक स्पष्टीकरण की शर्तों में अनुवाद प्रदान कर सकता है, इसलिए पार्सिंग (एक्स) HTML / XML के लिए regex का उपयोग करना संभव नहीं है?
EDIT: पहला उत्तर पढ़ने के बाद मैंने सोचा कि मुझे स्पष्ट करना चाहिए: मैं एक "अनुवाद" की तलाश कर रहा हूं जो संक्षेप में उन अवधारणाओं की व्याख्या करता है जो अनुवाद करने की कोशिश करता है: उत्तर के अंत में, पाठक को एक मोटा विचार होना चाहिए - उदाहरण के लिए - किस "नियमित भाषा" और "संदर्भ-मुक्त व्याकरण" का अर्थ ...