Подтвердить что ты не робот

Ruby: вводить пробелы каждые X количество символов

В строке ruby, как я могу вставить пробел в каждое число X символов?

В качестве примера я хотел бы вставить пробел каждые 8 ​​символов данной строки.

4b9b3361

Ответ 1

>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "

Изменить:. Вы можете использовать позитивный просмотр, чтобы не добавлять дополнительное пространство в конец:

>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"

Ответ 2

Альтернативное решение:

s.scan(/.{1,8}/).join(' ')

String#scan будет разбивать его на вас (в количествах, состоящих из 8 символов, за исключением последнего фрагмента, который может быть короче), а затем Array#join воссоединяет куски с соответствующим символом вкрапленным.