Ruby:每X个字符插入一次空格

在ruby字符串中,如何每X个字符插入一个空格?

作为一个例子,我想在给定字符串的每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将重新组合具有散布的适当字符的块。