在ruby字符串中,如何每X个字符插入一个空格?
作为一个例子,我想在给定字符串的每8个字符处插入一个空格。
答案 0 :(得分:25)
>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "
修改:您可以使用正向前瞻以避免在最后添加额外空间:
>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
答案 1 :(得分:16)
替代解决方案:
s.scan(/.{1,8}/).join(' ')
String#scan
将为你填充(超过8个字符的跨度 - 除了最后一个块,可能更短),然后Array#join
将重新组合具有穿插的适当角色的块。