Ruby regex для разделения каждые четыре символа не работает
Я пытаюсь разделить значительную строку каждые четыре символа. Вот как я пытаюсь это сделать:
big_string.split(/..../)
Это дает массив nil. Насколько я вижу, это должно работать. Это даже делает, когда я подключаю его к онлайн-тегу ruby regex.
Ответы
Ответ 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