Ruby: вставлять пробелы каждые X символов - PullRequest
21 голосов
/ 02 июля 2010

Как вставить строку в рубиновую строку через каждые X символов?

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

Ответы [ 2 ]

26 голосов
/ 02 июля 2010
>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "

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

>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
16 голосов
/ 02 июля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...