2010-05-10 23 views
31

मुझे पता है कि पर्ल रेगेक्स है जो एक मामूली डी वास्तविक मानक है, लेकिन क्यों कोई भी मानक प्रतीकों, वाक्यविन्यास और व्यवहार के सार्वभौमिक सेट के साथ नहीं आया है?नियमित अभिव्यक्ति मानक क्यों नहीं है?

+2

मैंने खुद से यही प्रश्न पूछा है, और कभी भी एक अच्छा जवाब नहीं मिला। मुझे खुशी है कि मैंने www.regular-expressions पाया।जानकारी – chilltemp

उत्तर

16

IEEE associated with the POSIX effort द्वारा एक मानक नहीं है। असली सवाल है "हर कोई इसका अनुसरण क्यों नहीं करता"? जवाब शायद यह है कि यह लालची मिलान के संबंध में पीसीआरई के रूप में काफी जटिल नहीं है और क्या नहीं।

+6

और फॉलोअप प्रश्न शायद तब है: * अधिक सिंटैक्स को शामिल करने के लिए POSIX मानक रीडोन/विस्तारित क्यों नहीं किया गया है? * क्योंकि तब शायद लोग इसका अनुसरण करने का प्रयास कर सकते हैं। –

+0

@ पीटरबटन: सबसे निश्चित रूप से ... अब हमें जो कुछ करना है, वह इस बात से सहमत होगा कि हम इसके साथ कितना दूर जाना चाहते हैं। मेरी राय है कि आप वहां से अधिक विस्तारित आरईएस की तुलना में पूर्ण पार्सर के साथ बेहतर होंगे। अगर आपको अपने आरई में टिप्पणियों की ज़रूरत है, तो यह आरई के लिए बहुत जटिल है। –

+0

अच्छा, हाँ और नहीं। जबकि एक पूर्ण पार्सर एक बेहतर विकल्प हो सकता है, यह आम तौर पर संक्षिप्त कोड के रूप में नहीं है (जब तक कि पार्सर्स उत्पन्न करने के लिए एक कॉम्पैक्ट/सामान्यीकृत डीएसएल नहीं है?), और - एक तरफ - किसी भी मानक को जो भी उपयोग किया जाता है उसे कवर करना चाहिए (भले ही एक समझदार दृष्टिकोण न हो)। –

2

क्योंकि मानकों को बनाना कठिन है। पर्याप्त लोगों को इसे आधिकारिक मानक बनाने के लिए कुछ भी सहमत होना लगभग असंभव है, अकेले कुछ रेगेक्स के रूप में जटिल होने दें। Defacto मानकों के द्वारा आने के लिए बहुत आसान है।

मामले में मामला: एचटीएमएल 5 साल 2022 तक आधिकारिक मानक बनने की उम्मीद नहीं है। लेकिन मसौदा विनिर्देश पहले से ही उपलब्ध है, और मानक की प्रमुख विशेषताएं मानक आधिकारिक होने से पहले ब्राउज़र में दिखाई देने लगेंगी।

+2

बस एक नोट फिर से: एचटीएमएल 5 - जबकि यह केवल 2022 तक आधिकारिक सिफारिश होने की उम्मीद है, यह 2012 तक उम्मीदवार बनने की उम्मीद है। सीएसएस 2 (नहीं 3!) अभी भी उस उम्मीदवार सिफारिश चरण में है, लेकिन यह सुंदर है व्यापक रूप से इस बिंदु पर लागू किया गया। एचटीएमएल 520 से पहले पूरी तरह प्रयोग योग्य होगा। – ceejayoz

+9

मुझे आश्चर्य है कि 2022 में उड़ान कारें HTML5 का समर्थन करेंगी या नहीं। – Chris

+0

सीएसएस 2 उम्मीदवार की सिफारिश नहीं है, यह पूरी सिफारिश है, और 1 99 8 से रहा है। सीएसएस 2.1 उम्मीदवार की सिफारिश है, और 2007 के मध्य से ही उस स्थिति में रहा है। –

0

पर्ल पहले (या पहले के नजदीक डैनम) था, और जब यह पर्ल है और हम सभी इसे प्यार करते हैं, तो पुराने लोगों को लगा कि इसे और अधिक पॉलिश की आवश्यकता है (यानी विशेषताएं)। यह वह जगह है जहां नए प्रकार आए।

वे नाममात्र करना शुरू कर रहे हैं, .NET में उपयोग किया गया रेगेक्स अन्य भाषाओं में उपयोग किए जाने वाले रेगेक्स के समान है, मुझे लगता है कि धीरे-धीरे लोग एकजुट होना शुरू कर रहे हैं, लेकिन कुछ का उपयोग किया जाता है thier perl तरीके और बदलना नहीं चाहते हैं।

+0

पर्ल का आविष्कार किया गया था। मुझे grep के लिए कोई तारीख नहीं मिल रही है, लेकिन मैं आपको आश्वस्त करता हूं कि इससे पहले यह बहुत पहले था। यूनिक्स में कार्यान्वयन हो सकते थे जो पहले भी थे। –

+1

पर्ल खेल में बहुत देर हो चुकी है (http://en.wikipedia.org/wiki/Regular_expression#History)। हेनरी स्पेंसर ने 80 के उत्तरार्ध में शुरुआती पर्ल में शामिल होने से पहले अधिकांश हिम्मत लिखी थीं। लेकिन स्पेंसर का कार्यान्वयन पहले से ही मौजूदा मालिकाना कार्यान्वयन को प्रतिस्थापित करना था। –

+0

सुधार लोगों के लिए धन्यवाद। मुझे पता था कि पर्ल पुराना था, लेकिन मुझे यकीन नहीं था कि यह सबसे पुराना था। बिंदु अभी भी खड़ा है, यह विकसित हो रहा है, और मुझे लगता है कि वे धीरे-धीरे अभिसरण शुरू कर रहे हैं। – Aren

0

बस एक अनुमान: वहाँ एक संस्करण काफी लोकप्रिय विहित मानक पर विचार किया जाना कभी नहीं था, और कोई मानक कार्यान्वयन नहीं था। जो लोग आए और उन्हें फिर से कार्यान्वित किया, उनके बारे में अपने विचार थे कि इसे "बेहतर" कैसे बनाया जाए।

8

असल में, एक नियमित अभिव्यक्ति मानक (POSIX) है, लेकिन यह क्रोधित है। इसलिए लोग अपने आवेदन की जरूरतों को पूरा करने के लिए अपने आरई इंजन का विस्तार करते हैं। पीसीआरई (पर्ल-संगत नियमित अभिव्यक्ति) नियमित अभिव्यक्तियों के लिए एक छद्म-मानक है जो पर्ल के आरई इंजन के साथ संगत है। यह विशेष रूप से प्रासंगिक है क्योंकि आप पर्ल के इंजन को अन्य अनुप्रयोगों में एम्बेड कर सकते हैं।

+6

किस तरह से क्रैपी? –

1

मैंने इसका शोध किया है और कुछ भी ठोस नहीं मिला। मेरा अनुमान है कि ऐसा इसलिए है क्योंकि रेगेक्स अक्सर एक उपकरण है जो पर उपकरण पर काम करता है और इसलिए यह आवश्यक रूप से प्लेटफ़ॉर्म- और टूल-विशिष्ट एक्सटेंशन होगा।

उदाहरण के लिए, दृश्य स्टूडियो में, आप रेगुलर एक्सप्रेशन का उपयोग खोजने के लिए और अपने स्रोत कोड में तार को बदलने के लिए कर सकते हैं। उन्होंने सामान जोड़ दिया है: मैं पहचानकर्ता से मेल खाता हूं। अन्य उपकरणों में अन्य प्लेटफार्मों पर, पहचानकर्ता एक लागू अवधारणा नहीं हो सकते हैं। वास्तव में, शायद अन्य प्लेटफार्म और उपकरण अभिव्यक्ति से बचने के लिए कोलन चरित्र को आरक्षित करते हैं।

इस तरह के मतभेद इसे मानकीकृत करने के लिए विशेष रूप से कठिन बनाते हैं।

+3

एक मान्य बिंदु, लेकिन एक मानक मानकीकृत नहीं होगा "यहां एक पहचानकर्ता कैसे मेल खाता है", लेकिन इसके बजाय "यहां कस्टम मिलान प्रतीकों के लिए विस्तार करना है", या जो भी हो, ताकि एक्सटेंशन प्लेटफॉर्म पर लगातार/अनुमानित रूप से लागू किए जा सकें। –

+0

@ पीटर अच्छा बिंदु, मानक ऐसी चीजों को समायोजित करने के लिए सामान्यीकृत किया जा सकता है। इससे पढ़ने और कार्यान्वित करना मुश्किल हो जाएगा, हालांकि (आपके बिंदु पर, अधिक समझदार लोगों को डरा देना :))। – Chris

-3

क्योंकि बहुत सारे लोग नियमित अभिव्यक्ति से डर लगता है, इसलिए वे विचार के दोनों थिंक लिए पूरी तरह से पर्याप्त समझदार लोगों के लिए काफी बड़े पैमाने पर नहीं हो जाते हैं और एक स्थिति इसे लागू करने में हो गए हैं।

भले ही मानक मानकों का गठन किया गया हो और विभिन्न स्वादों को एकजुट करने का प्रयास करें, बहुत से लोग अपने दृष्टिकोण के प्रति जिद्दी रूप से बहस करेंगे, चाहे बेहतर हों या नहीं, क्योंकि बहुत सारे प्रोग्रामर इस तरह परेशान हैं।

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