Comment puis-je supprimer la chaîne “\n” à partir d'un Rubis de la chaîne?
J'ai cette chaîne:
"some text\nandsomemore"
J'ai besoin de supprimer le "\n" de celle-ci. J'ai essayé
"some text\nandsomemore".gsub('\n','')
mais ça ne fonctionne pas. Comment dois-je faire? Merci pour la lecture.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
"\n"
pas'\n'
dans votre gsub. Les différentes marques de devis se comportent différemment.Guillemets
"
permettre caractère de l'expansion et de l'expression d'interpolation ie. ils vous permettent d'utiliser échappé au contrôle caractères comme\n
pour représenter leur vraie valeur, dans ce cas, newline, et de permettre l'utilisation de#{expression}
de sorte que vous pouvez tisser des variables et, bien, assez bien toute ruby expression que vous aimez dans le texte.Tandis que, d'autre part, les guillemets simples
'
traiter la chaîne littéralement, donc il n'y a pas d'expansion, le remplacement, l'interpolation ou de ce que vous avez.Dans ce cas particulier, il est préférable d'utiliser soit le
.delete
ou.tr
Chaîne de méthode pour supprimer l' retours à la ligne.Voir ici pour plus d'infos
tr
est un meilleur choix pour cette tâche, mais comme je l'ai dit, j'ai trouvé de mieux pour souligner la différence des simples, doubles guillemets quand j'ai répondu.Lorsque vous souhaitez supprimer une chaîne de caractères, plutôt que de le remplacer, vous pouvez utiliser
String#delete
(ou de ses mutateur équivalentString#delete!
), par exemple:x
est maintenant égale à "foofoo"Dans ce cas précis
String#delete
est plus lisible quegsub
puisque vous n'êtes pas réellement en remplaçant la chaîne avec quoi que ce soit.delete
n'est pas destructrice, comme indiqué ici. Elle renvoie une nouvelle chaîne de caractères.Si vous voulez ou ne me dérange pas d'avoir toutes les attaque et de fuite des espaces à partir de votre chaîne supprimé, vous pouvez utiliser le
strip
méthode.comme mentionné ici.
modifier Le titre original de cette question était différente. Ma réponse est pour la question d'origine.
strip
ne supprime attaque et de fuite des espaces: ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Vous n'avez pas besoin de regex pour cela. Utiliser tr:
replace
juste de modifier la chaîne pour une nouvelle, comme une affectation de variable; considérant quetr
est un caractère par caractère global rechercher et remplacer.utilisation
chomp
oustrip
fonctions de Ruby:strip
ne supprime attaque et de fuite des espaces - ruby-doc.org/core-1.9.3/String.html#method-i-strip-21Regardez ici: