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
Ответ 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