Предположим, у нас есть строка, подобная этой:
Hello, my\n name is Michael.
Как я могу удалить эту новую строку и разделить эти пробелы после этого на один внутри строки, чтобы получить это?
Hello, my name is Michael.
проверить рельсы squish метод:
squish
http://apidock.com/rails/String/squish
Для иллюстрации встроенных Ruby squeeze :
string.gsub("\n", ' ').squeeze(' ')
Самый простой способ, вероятно, будет
s = "Hello, my\n name is Michael." s.split.join(' ') #=> "Hello, my name is Michael."
Попробуйте:
s = "Hello, my\n name is Michael." s.gsub(/\n\s+/, " ")
my_string = "Hello, my\n name is Michael." my_string = my_string.gsub( /\s+/, " " )
это регулярное выражение заменит экземпляр 1 или более пробелов на 1 пробел, p.s \s заменит все символы пробела, включая \s\t\r\n\f:
\s
\s\t\r\n\f
a_string.gsub!(/\s+/, ' ')
Аналогично только для возврата каретки
str.gsub!(/\n/, " ")
Сначала замените все \n пробелами, затем используйте регулярное выражение удаления нескольких пробелов.
\n
Использование Строка # gsub :
s = "Hello, my\n name is Michael." s.gsub(/\s+/, " ")
Вы можете добавить только метод squish (и ничего больше) в Ruby, включив только этот аспект Ruby:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Тогда используйте
"my \n string".squish #=> "my string"
Не требует Rails.
Use squish currency = " XCD" str = currency.squish str = "XCD" #=> "XCD"