रूबी स्ट्रिंग में, मैं प्रत्येक एक्स वर्णों की एक जगह कैसे डाल सकता हूं?रूबी: प्रत्येक एक्स संख्या के अक्षरों को रिक्त स्थान
उदाहरण के तौर पर, मैं किसी दिए गए स्ट्रिंग के प्रत्येक 8 वर्णों को एक स्थान डालना चाहता हूं।
रूबी स्ट्रिंग में, मैं प्रत्येक एक्स वर्णों की एक जगह कैसे डाल सकता हूं?रूबी: प्रत्येक एक्स संख्या के अक्षरों को रिक्त स्थान
उदाहरण के तौर पर, मैं किसी दिए गए स्ट्रिंग के प्रत्येक 8 वर्णों को एक स्थान डालना चाहता हूं।
>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "
संपादित करें: आप सकारात्मक अग्रदर्शी इस्तेमाल कर सकते हैं अंत में एक अतिरिक्त स्थान जोड़ने से बचने के लिए:
>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
वैकल्पिक समाधान:
s.scan(/.{1,8}/).join(' ')
String#scan
इच्छा यह हिस्सा ऊपर आप के लिए (8 अक्षरों के स्पैन में - अंतिम खंड को छोड़कर, जो छोटा हो सकता है), और फिर Array#join
भागों को फिर से जोड़ देगा वांछित चरित्र interspersed।
संभव डुप्लिकेट [मैं रूबी में हर चार पूर्णांक के बीच रिक्त स्थान कैसे बना सकता हूं?] (Http://stackoverflow.com/questions/3053328/how-do-i-create-spaces-between-every-four-integers -इन-रूबी) –