как заменить апостроф с помощью gsub - PullRequest
1 голос
/ 19 января 2012

Я хочу заменить апостроф (') в имени на "апостроф с обратной косой чертой" (\').Но, к сожалению, не получается такая простая вещь.

Итак, на irb я попытался выполнить

x = "stack's" x.gsub (/ [\ '] /, "\'")

Некоторые, как это не работает, я получаю тот же стек результатов вместо стека

Ответы [ 3 ]

3 голосов
/ 19 января 2012

Попробуйте это:

x = "anupam's"; puts x.gsub("'", "\\\\'")
2 голосов
/ 19 января 2012

Попробуйте:

x.gsub(/[']/,"\\\\\'")

Результат:

1.9.3p0 :014 > puts x.gsub(/[']/,"\\\\\'")
anupam\'s
1 голос
/ 19 января 2012

Вот вариант ruby ​​для метода addlashes в PHP (из http://www.ruby -forum.com / topic / 113067 # 263640 ). Этот метод также экранирует \ в строке с двойным \:

class String
  def addslashes
    self.gsub(/['"\\\x0]/,'\\\\\0')
  end
end

Что бы правильно избежать анупама:

"anupam's".addslashes # => "anupam\\'s"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...