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

Ruby regex для разделения каждые четыре символа не работает

Я пытаюсь разделить значительную строку каждые четыре символа. Вот как я пытаюсь это сделать:

big_string.split(/..../)

Это дает массив nil. Насколько я вижу, это должно работать. Это даже делает, когда я подключаю его к онлайн-тегу ruby ​​regex.

4b9b3361

Ответ 1

Попробуйте scan вместо этого:

$ irb
>> "abcd1234beefcake".scan(/..../)
=> ["abcd", "1234", "beef", "cake"]

или

>> "abcd1234beefcake".scan(/.{4}/)
=> ["abcd", "1234", "beef", "cake"]

Если количество символов не делится на 4, вы также можете захватить оставшиеся символы:

>> "abcd1234beefcakexyz".scan(/.{1,4}/)
=> ["abcd", "1234", "beef", "cake", "xyz"]

({1,4} будет жадно захватывать от 1 до 4 символов)

Ответ 2

Хмм, я не знаю, что там делает Рублев и почему - но

big_string.split(/..../)

переводит в

разделите строку на каждые 4 символа последовательности

который должен правильно привести к чему-то вроде

["", "", "", "abc"]

Ответ 3

Упс.

str = 'asdfasdfasdf'
c = 0
out = []
inum = 4
(str.length / inum).round.times do |s|
    out.push(str[c, round(s * inum)])
    c += inum
end