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

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

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

21
задан Shpigford 2 July 2010 в 18:38
поделиться

2 ответа

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

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

>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
27
ответ дан 29 November 2019 в 20:28
поделиться

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

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

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

16
ответ дан 29 November 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: