Considérez l'extrait suivant :
puts 'hello'.gsub(/.+/, '\0 \\0 \\\0 \\\\0')
Cela imprime ( vu sur ideone.com ) :
hello hello \0 \0
C'était très surprenant, car je m'attendais plutôt à voir quelque chose comme ça :
hello \0 \hello \\0
Mon argument est que \
est un caractère d'échappement, donc vous écrivez \\
pour obtenir un backslash littéral, donc \\0
est un backslash littéral \
suivi par 0
etc. Évidemment, ce n'est pas ainsi que gsub
l'interprète, alors quelqu'un peut-il expliquer ce qui se passe ?
Et que dois-je faire pour obtenir le remplacement que je souhaite ci-dessus ?