Supposons que nous ayons une chaîne comme ceci:
Hello, my\n name is Michael.
Comment puis-je supprimer cette nouvelle ligne et supprimer ces espaces dans une chaîne à l'intérieur de la chaîne pour l'obtenir?
Hello, my name is Michael.
découvrez la méthode squish
de Rails:
Pour illustrer Rubys construit dans squeeze :
string.gsub("\n", ' ').squeeze(' ')
Le moyen le plus simple serait probablement
s = "Hello, my\n name is Michael."
s.split.join(' ') #=> "Hello, my name is Michael."
Essaye ça:
s = "Hello, my\n name is Michael."
s.gsub(/\n\s+/, " ")
cette expression rationnelle remplacera l'instance de 1 ou plusieurs espaces blancs par 1 espace blanc, p.s \s
remplacera tous les caractères d'espaces blancs comprenant \s\t\r\n\f
:
a_string.gsub!(/\s+/, ' ')
De même pour le retour de chariot seulement
str.gsub!(/\n/, " ")
Commencez par remplacer tout \n
par un espace, puis utilisez la suppression des regex à plusieurs espaces.
my_string = "Hello, my\n name is Michael."
my_string = my_string.gsub( /\s+/, " " )
Utilisez String # gsub :
s = "Hello, my\n name is Michael."
s.gsub(/\s+/, " ")
Use squish
currency = " XCD"
str = currency.squish
str = "XCD" #=> "XCD"
Vous pouvez ajouter uniquement la méthode squish
(et rien d’autre) à Ruby en n’incluant que cette facette Ruby:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Puis utiliser
"my \n string".squish #=> "my string"
Ne nécessite pas de rails.