При попытке избежать апострофа с помощью «gsub» я получаю обратную ссылку

У меня есть этот код:

"1'2".gsub("'","\\'")

Вместо "1\'2" я получаю: "122". Почему?


person Konstantin    schedule 21.08.2017    source источник


Ответы (2)


Это потому, что "\\'" означает контекст, следующий за совпадением, то есть "2".

person sawa    schedule 21.08.2017

Вам нужно использовать это:

puts "1'2".gsub("'","\\\\'")
person Momus    schedule 21.08.2017