В рубиновой строке, как я могу вставить пробел каждое 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
объединит части с соответствующими символами.