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

时间:2010-07-02 18:38:18

标签: ruby string

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

作为一个例子,我想在给定字符串的每8个字符处插入一个空格。

2 个答案:

答案 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将重新组合具有穿插的适当角色的块。