Я пытаюсь использовать String # gsub для добавления косой черты перед% или?, Которую я затем буду использовать в запросе LIKE.Я получаю странное поведение, которое, надеюсь, кто-то может объяснить:
irb(main):018:0> "%?".gsub(/([%\?])/, '\1')
=> "%?"
irb(main):019:0> "%?".gsub(/([%\?])/, '\\1')
=> "%?"
irb(main):020:0> "%?".gsub(/([%\?])/, '\\\1')
=> "\\1\\1"
irb(main):021:0> "%?".gsub(/([%\?])/, '\\\\1')
=> "\\1\\1"
В настоящий момент я работаю над этим, просто выполняя два отдельных gsub с использованием строк, но мне очень хотелось бы знать, если кто-нибудьмогу объяснить, что происходит!