我想用“反斜杠撇号”(\')替换名称中的撇号(')。但不幸的是没有得到这么简单的东西。如何使用gsub替换撇号
于是就IRB我尝试以下
X = “堆栈的” x.gsub(/ [\ '] /,“\'”)
一些人来说是多么不工作我得到相同result-栈的代替堆\的
我想用“反斜杠撇号”(\')替换名称中的撇号(')。但不幸的是没有得到这么简单的东西。如何使用gsub替换撇号
于是就IRB我尝试以下
X = “堆栈的” x.gsub(/ [\ '] /,“\'”)
一些人来说是多么不工作我得到相同result-栈的代替堆\的
尝试了这一点:
x.gsub(/[']/,"\\\\\'")
结果:
1.9.3p0 :014 > puts x.gsub(/[']/,"\\\\\'")
anupam\'s
试试这个:
x = "anupam's"; puts x.gsub("'", "\\\\'")
我得到的输出为“阿努邦\\的” :( –
其实我是想把这个字符串放在java脚本中(以形成一个url)...所以这个anupam的字符串工作 –
正如其他评论中提到的那样,输出(例如,irb)也会被转义。如果你使用puts把它打印出来,屏幕上就不会出现两个反斜杠,然后你就可以在java中使用它了。 –
下面是脉动热管和addslashes方法红宝石变体(来自http://www.ruby-forum.com/topic/113067#263640)。这种方法也逃脱\
在字符串中,双\
:
class String
def addslashes
self.gsub(/['"\\\x0]/,'\\\\\0')
end
end
这将正确逃生阿努邦的:
"anupam's".addslashes # => "anupam\\'s"
其实我想把这个字符串中的Java脚本(形成URL)......等会本阿努邦\\的字符串工作 –
有一个在轨的一个帮手...'escape_javascript'或者只使用''anupam's“.to_json' :) – lwe
1.8.7-P357:008> x.gsub(/ [ '] /, “\\\\'”) => “阿努邦\\的” 我正在此:( –
这是正常的 - 检查产生转义输出。如果你打电话放在输出,那么你不会看到额外的反斜杠 –
谢谢它工作! –