मुझे लगता है कि यह एक मूर्खतापूर्ण गलती होगी लेकिन मेरे लिए, निम्नलिखित केवल "एम" युक्त एक सरणी देता है। इसे देखें:रूबी रेगेक्स, केवल एक कैप्चर (बहुत सरल!)
/(.)+?/.match("Many many characters!").captures
=> ["M"]
यह प्रत्येक चरित्र की सरणी क्यों नहीं लौटाता है? मुझे कुछ स्पष्ट रूप से स्पष्ट होना चाहिए क्योंकि मैं नहीं देख सकता कि इसमें क्या गलत है?
संपादित करें: बस एहसास हुआ, मुझे + की आवश्यकता नहीं है? लेकिन यह अभी भी इसके बिना काम नहीं करता है।
संपादित करें: क्षमा करें! मैं स्पष्टीकरण दूंगा: मेरा लक्ष्य उपयोगकर्ताओं को एक नियमित अभिव्यक्ति और स्टाइल और एक इनपुट टेक्स्ट फ़ाइल दर्ज करने की इजाजत देना है, जहां भी कोई मिलान है, टेक्स्ट एचटीएमएल तत्व से घिरा होगा और स्टाइल लागू किया जाएगा, मैं सिर्फ विभाजन नहीं कर रहा हूं पात्रों में स्ट्रिंग, मैंने केवल दिए गए रेगेक्स का उपयोग किया क्योंकि यह सबसे आसान था हालांकि यह मेरे हिस्से पर बेवकूफ था। मैं स्कैन() से कैप्चर समूह कैसे प्राप्त करूं या यह संभव नहीं है? मुझे लगता है कि $ 1 में "!" है (अंतिम मैच?) और कोई अन्य नहीं।
संपादित करें: भगवान, यह वास्तव में मेरा दिन नहीं है। जैसे इंजेक्ट ने मुझे सूचित किया है, कैप्चर अलग-अलग सरणी में संग्रहित होते हैं। मैं मूल स्ट्रिंग से इन कैप्चर का ऑफ़सेट कैसे प्राप्त करूं? मैं एक कैप्चर ऑफसेट प्राप्त करने में सक्षम होना चाहता हूं और फिर इसे दूसरी स्ट्रिंग से घिराऊंगा। या यह है कि जीएसबी क्या है? (मैंने सोचा कि केवल मैच, एक पर कब्जा समूह नहीं बदला गया)
उम्मीद है कि अंतिम संपादन: ठीक है, मुझे बस फिर यह शुरू करते हैं: पी
तो, मैं एक स्ट्रिंग है। उपयोगकर्ता नियमित अभिव्यक्ति दर्ज करने के लिए कॉन्फ़िगरेशन फ़ाइल का उपयोग करेगा, फिर प्रत्येक कैप्चर समूह से जुड़ी शैली। मुझे पूरी स्ट्रिंग को स्कैन करने और प्रत्येक समूह मैच के स्टार्ट और फिनिश या ऑफ़सेट और आकार प्राप्त करने में सक्षम होना चाहिए।
तो अगर एक उपयोगकर्ता को कॉन्फ़िगर किया था ([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})
(ईमेल पते) तो मैं प्राप्त करने के लिए सक्षम होना चाहिए:
[ ["elliotpotts", 0, 11],
["sample.", 12, 7],
["com", 19, 3] ]
स्ट्रिंग से
अगर ऐसा नहीं है स्पष्ट है, मेरे साथ कुछ गलत है: पी। बहुत बहुत धन्यवाद दोस्तों, और इतने मरीज होने के लिए धन्यवाद!
मैंने आपके संपादन को देखा, स्कैन से समूह को अलग-अलग सरणी में संग्रहीत किया जाता है, बस अपने regexp और एक परीक्षण स्ट्रिंग को देखें जो आप देखेंगे। उत्तर अभी भी आपके शामिल संपादन –
के साथ समान हैं, बस अपना अगला संपादन देखा, आपको अधिक जानकारी के साथ अपडेट करना होगा। मैं अब थोड़ा उलझन में हूं: पी एक और पूर्ण उदाहरण फेंकने के लिए स्वतंत्र महसूस करें इससे कोई फर्क नहीं पड़ता कि यह कितना प्रदूषित है, इसलिए हम जानते हैं कि आपको –
निकालने की ज़रूरत है ठीक है, मेरे नवीनतम संपादन के साथ मेरा उत्तर अपडेट किया गया है। मैं अभी समय के लिए थोड़ा बंधे हुए हूं, इसलिए यह कोई स्पष्टीकरण के साथ सिर्फ पूरा समाधान है, अगर मुझे समझ में नहीं आता है तो मुझे बताएं और मैं इसे अपडेट कर दूंगा –