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