Comment puis-je supprimer \"
d'une chaîneRuby supprimer `" `partir d'une chaîne
Exemple:?
'"\"asdasd"\"'.gsub('\"', '') # => "\"asdasd\""
Pourquoi \"
pas retiré
Comment puis-je supprimer \"
d'une chaîneRuby supprimer `" `partir d'une chaîne
Exemple:?
'"\"asdasd"\"'.gsub('\"', '') # => "\"asdasd\""
Pourquoi \"
pas retiré
Il est supprimé. Le \"
dans la sortie n'est pas un backslash suivi d'un guillemet double, c'est juste un double guillemet qui est échappé car inspect
imprime des chaînes entre guillemets. Si vous essayez d'imprimer la chaîne, il va venir comme:
"asdasd"
Pour développer ce un peu: '"\"asdasd"\"'
(qui peut également être écrit en utilisant des guillemets doubles comme "\"\\\"asdasd\"\\\""
) est une chaîne qui contient un guillemet , suivi d'une barre oblique inverse, suivie d'une double citation, suivie de asdasd, suivie d'une double citation, suivie d'une barre oblique inverse, suivie d'une double citation.
Votre appel à gsub
supprime les deux occurrences de contre-obliques suivies de guillemets. Le résultat est "\"asdasd\""
, qui peut également être écrit comme '"asdasd"'
et est une chaîne contenant une double citation, suivie par asdasd, suivi d'une double citation. Les doubles guillemets ont donc été supprimés, mais les guillemets simples ne l'étaient pas. Je suppose que c'est le comportement prévu.
En rubis symbole spécial précédente par barre oblique inverse lorsque convertir en chaîne. ie "\"
au \"\\\"
Vérifier t vous saurez
'"\"asdasd"\"' # => "\"\\\"asdasd\"\\\""
'"\"asdasd"\"'.gsub("\\", '') # => "\"\"asdasd\"\""
'"\"asdasd"\"'.gsub("\\", '').gsub("\"", '') # => "asdasd"
Comment est-ce?
str = '"\"asdasd"\"'
p str[/\w+/] # => "asdasd"
Il les a éliminés. Voici ce que la chaîne ressemble quand inspect
ed avant le changement:
'"\"asdasd"\"' # => "\"\\\"asdasd\"\\\""
Et voici après:
'"\"asdasd"\"'.gsub('\"','') # => "\"asdasd\""
Il avait déjà quelques séquences de marque backslash-citation en elle. Maintenant, il a juste des guillemets.
Vous devez préciser ce que vous voulez dire par «\». Voulez-vous dire «\» ou '« \ »« '? La réponse dépend de cela. – sawa