2013-09-03 2 views
0

Comment puis-je supprimer \" d'une chaîneRuby supprimer `" `partir d'une chaîne

Exemple:?

'"\"asdasd"\"'.gsub('\"', '') # => "\"asdasd\"" 

Pourquoi \" pas retiré

+1

Vous devez préciser ce que vous voulez dire par «\». Voulez-vous dire «\» ou '« \ »« '? La réponse dépend de cela. – sawa

Répondre

4

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.

0

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" 
0

Comment est-ce?

str = '"\"asdasd"\"' 
p str[/\w+/] # => "asdasd" 
0

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.

Questions connexes