J'ai cette chaîne:
"some text\nandsomemore"
Je dois en supprimer le "\ n". J'ai essayé
"some text\nandsomemore".gsub('\n','')
mais ça ne marche pas. Comment fait-on ça? Merci d'avoir lu.
Vous devez utiliser "\n"
not '\n'
dans votre gsub. Les différents guillemets se comportent différemment.
Les guillemets doubles "
permettent l'expansion des caractères et l'interpolation d'expression. ils vous permettent d'utiliser des caractères de contrôle échappés comme \n
pour représenter leur vraie valeur, dans ce cas, une nouvelle ligne , et permettent l'utilisation de#{expression}
afin que vous puissiez tisser des variables et, bien, à peu près n'importe quelle expression ruby que vous aimez dans le texte.
Alors que d'un autre côté, les guillemets simples '
traitent la chaîne littéralement, il n'y a donc pas d'expansion, de remplacement, d'interpolation ou quoi que ce soit d'autre.
Dans ce cas particulier, il est préférable d'utiliser la méthode .delete
ou .tr
String pour supprimer les nouvelles lignes .
tr
c'est un meilleur choix pour cette tâche, mais comme je l'ai dit, j'ai pensé qu'il était préférable de souligner la différence entre guillemets simples et doubles lorsque j'ai répondu.Lorsque vous souhaitez supprimer une chaîne, plutôt que de la remplacer, vous pouvez utiliser
String#delete
(ou son équivalent mutateurString#delete!
), par exemple:x
équivaut désormais à "foofoo"Dans ce cas précis, il
String#delete
est plus lisible quegsub
puisque vous ne remplacez pas réellement la chaîne par quoi que ce soit.la source
delete
n'est pas destructif comme indiqué ici. Il renvoie une nouvelle chaîne.Si vous voulez ou que cela ne vous dérange pas de supprimer tous les espaces de début et de fin de votre chaîne, vous pouvez utiliser la
strip
méthode.comme mentionné ici .
modifier Le titre original de cette question était différent. Ma réponse concerne la question initiale.
la source
strip
supprime uniquement les espaces de débutVous n'avez pas besoin d'une expression régulière pour cela. Utilisez tr:
la source
replace
change simplement la chaîne en une nouvelle, comme l'affectation de variable; alors quetr
est une recherche et un remplacement global caractère par caractère.utilisation
chomp
oustrip
fonctions de Ruby:la source
strip
supprime uniquement les espaces de débutRegardez ici:
la source