Подложка строки Ruby без обратных ссылок на регулярное выражение

Я пытаюсь создать простую строковую подпрограмму в Ruby.

Второй аргумент функции sub () - это длинный фрагмент уменьшенного кода JavaScript, в котором содержатся регулярные выражения. Обратные ссылки в регулярном выражении в этой строке, похоже, влияют на результат sub, потому что замененная строка (то есть первый аргумент) появляется в выходной строке.

Пример:

input = "string <!--tooreplace--> is here"
output = input.sub("<!--tooreplace-->", "\&")

Я хочу, чтобы результат был:

"string \& is here"

Не:

"string & is here"

или при экранировании регулярного выражения

"string <!--tooreplace--> is here"

В принципе, мне нужен какой-то способ выполнить подпрограмму строки, которая вообще не имеет последствий для регулярного выражения - просто замените строку.

8
задан Andy Hume 15 November 2011 в 13:20
поделиться