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

Shp*_*ord 21 ruby string

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

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

Pär*_*der 27

>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "
Run Code Online (Sandbox Code Playgroud)

编辑:您可以使用正向前瞻以避免在最后添加额外的空间:

>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
Run Code Online (Sandbox Code Playgroud)

  • 只需添加一个`strip!`.所以它会变成`s.gsub(/(.{8})/,'\ 1').strip!` (3认同)

ram*_*ion 16

替代解决方案:

s.scan(/.{1,8}/).join(' ')
Run Code Online (Sandbox Code Playgroud)

String#scan将为你缩小(为8个字符的跨度 - 除了最后一个块,可能更短),然后Array#join将重新组合块与适当的角色散布.