Как удалить возврат каретки с помощью Ruby? - PullRequest
68 голосов
/ 13 ноября 2008

Я думал, что этот код будет работать, но регулярное выражение никогда не совпадает с \ r \ n. Я просмотрел данные, которые я читаю, в шестнадцатеричном редакторе и убедился, что в файле действительно есть шестнадцатеричный D и шестнадцатеричный шаблон.

Я также пытался использовать регулярные выражения / \ xD \ xA / m и / \ x0D \ x0A / m, но они также не совпадали.

Это мой код прямо сейчас:

   lines2 = lines.gsub( /\r\n/m, "\n" )
   if ( lines == lines2 )
       print "still the same\n"
   else
       print "made the change\n"
   end

В дополнение к альтернативам было бы неплохо узнать, что я делаю неправильно (для облегчения некоторого обучения с моей стороны). :)

Ответы [ 14 ]

2 голосов
/ 18 августа 2011

Почему бы не прочитать файл в текстовом режиме, а не в двоичном режиме?

1 голос
/ 18 августа 2017
lines.map(&:strip).join(" ")
1 голос
/ 03 июня 2013

Вы можете использовать это:

my_string.strip.gsub(/\s+/, ' ')
0 голосов
/ 22 марта 2018
def dos2unix(input)
  input.each_byte.map { |c| c.chr unless c == 13 }.join
end

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