regex - Why do match() and split() produce different results? -


क्यों मैच और split अलग परिणाम उत्पन्न करते हैं? यह एक्शन स्क्रिप्ट 3.0 में है, लेकिन अगर यह एएस 3 के बाहर भी है, तो मैं जानना चाहूंगा कि इसके लिए भी यही कारण है।

उदाहरण:

  var txt: स्ट्रिंग = "कुछ"; Var पुनः: RegExp = / (\ w {2,2}) / g; ट्रेस ("\ t txt.split =" + txt.split (पुन) + "-" + txt.split (पुनः)। लम्बाई); ट्रेस ("\ t txt.match =" + txt.match (पुनः) + "-" + txt.match (पुनः)। लम्बाई);   

परिणाम:

  txt.split =, तो, मुझे, वें, में ,, जाओ, ro, th, er , - 17 txt.match = ऐसा, मुझे, वें, में, जाना, आरओ, वें, एर - 8   

संपादित करें:

दिए गए शर्तों के साथ , मुझे उम्मीद है कि परिणाम एक समान सरणी (अपवाद के साथ, मेल के अजीब-लम्बाई स्ट्रिंग्स के लिए अंतिम प्रविष्टि नहीं ढूंढने के मामले में) हो सकते हैं। split में अतिरिक्त प्रविष्टियां क्यों हैं? मिलान खोजने के लिए split क्या "सही" हो रहा है?

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


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

Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -