Odpowiedzi:
sprawdź squishmetodę Railsów :
some_string.strip.gsub(/\s+/, " ")dokładnie tego, co robi squish.
squish
Aby zilustrować wbudowany w squeeze Rubys :
string.gsub("\n", ' ').squeeze(' ')
squeeze(' ')po prostu ściska spacje. "Squeeze my application's copy".squeeze(' ') => "Squeeze my application's copy".
to wyrażenie regularne zastąpi wystąpienie 1 lub więcej białych spacji 1 białą spacją, ps \szastąpi wszystkie białe znaki, które obejmują \s\t\r\n\f:
a_string.gsub!(/\s+/, ' ')
Podobnie tylko dla powrotu karetki
str.gsub!(/\n/, " ")
Najpierw zamień wszystko na \nbiałe spacje, a następnie użyj wyrażenia regularnego usuń wiele białych znaków.
Możesz dodać tylko squishmetodę (i nic więcej) do Rubiego, włączając tylko ten aspekt Rubiego:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Następnie użyj
"my \n string".squish #=> "my string"
Nie wymaga Railsów.