Suppose we have string like this:
Hello, my\n name is Michael.
How can I remove that new line and strip those spaces after that into one inside of string to get this?
Hello, my name is Michael.
check out Rails squish
method:
https://api.rubyonrails.org/classes/String.html#method-i-squish
To illustrate Rubys built in squeeze:
string.gsub("\n", ' ').squeeze(' ')
The simplest way would probably be
s = "Hello, my\n name is Michael."
s.split.join(' ') #=> "Hello, my name is Michael."
Try This:
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+/, " " )
this regex will replace instance of 1 or more white spaces with 1 white space, p.s \s
will replace all white space characters which includes \s\t\r\n\f
:
a_string.gsub!(/\s+/, ' ')
Similarly for only carriage return
str.gsub!(/\n/, " ")
First replace all \n
with white space, then use the remove multiple white space regex.
Use String#gsub:
s = "Hello, my\n name is Michael."
s.gsub(/\s+/, " ")
You can add just the squish
method (and nothing else) to Ruby by including just this Ruby Facet:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Then use
"my \n string".squish #=> "my string"
Doesn't require Rails.