/ / मैं स्ट्रिंग को कैसे विभाजित कर सकता हूं और व्हाट्सएप भी रख सकता हूं? - रूबी, स्ट्रिंग, विभाजन, व्हॉट्सएप

मैं स्ट्रिंग कैसे विभाजित कर सकता हूं और सफेद जगहों को भी कैसे रख सकता हूं? - रूबी, स्ट्रिंग, स्प्लिट, व्हाइटस्पेस

मैंने पायथन में निम्नलिखित कार्य किया:

s = "This is a text"
re.split("(W)", s)
# => ["This", " ", "is", " ", "a", "text"]

यह बहुत अच्छा काम किया। मैं रूबी में समान विभाजन कैसे करूं?

मैंने यह कोशिश की है, लेकिन यह मेरे व्हाट्सएप को खा जाता है।:

s = "This is a text"
s.split(/[W]/)
# => ["This", "is", "a", "text"]

उत्तर:

उत्तर № 1 के लिए 6

वहाँ से String#split प्रलेखन:

यदि पैटर्न में समूह हैं, तो संबंधित मिलान वापस कर दिए जाएंगे साथ ही सरणी।

यह रूबी में काम करता है जैसे कि पायथन में, वर्ग ब्रैकेट निर्दिष्ट वर्ण वर्गों के लिए हैं, समूहों से मेल नहीं खाते:

"foo bar baz".split(/(W)/)
# => ["foo", " ", "bar", " ", "baz"]

उत्तर № 2 के लिए 1

toro2k का उत्तर सबसे सीधा है। वैकल्पिक रूप से,

string.scan(/w+|W+/)