将“&”替换为到“\&”在 Ruby 中似乎不可能?
我想用 String.gsub
(或其他方法)将所有 &
字符替换为 \&
。我尝试了几种组合并阅读了这里的另一个问题,但没有任何效果。
"asdf & asdf".gsub("&", "\\\&") => "asdf & asdf"
I want to replace all &
characters into \&
with String.gsub
(or a other method). I've tried several combinations and read another question here, but nothing is gonna work.
"asdf & asdf".gsub("&", "\\\&") => "asdf & asdf"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您链接的问题提供了一个解决方案 - 使用
gsub
的块形式:Your linked question provides a solution - use the block form of
gsub
:我猜你用的是1.8。在 1.8 中,
irb
是这么说的:这与您所看到的相符。但是,如果你再添加一个反斜杠,你就会得到你想要的结果:
四重反斜杠方法在 1.9.2 和 1.8.7 中为我生成相同的单转义 & 符号,因此将其增加到 4 个(不是 11 个,只是四个就可以了)。
I'm going to guess that you're using 1.8. In 1.8,
irb
says this:And that matches what you're seeing. But, if you add yet another backslash, you get what you're after:
The quadruple backslash approach produces the same singly-escaped ampersand for me in both 1.9.2 and 1.8.7 so turn it up to four (not eleven, just four will do).