gpt4 book ai didi

ruby - 如何转义 Ruby 中的单引号?

转载 作者:数据小太阳 更新时间:2023-10-29 06:29:07 28 4
gpt4 key购买 nike

我正在通过接受 JSON 作为字符串的脚本(不是我的)将一些 JSON 传递给服务器。

JSON 的某些内容包含单引号,因此我想确保在将任何单引号传递给脚本之前对其进行转义。

我尝试了以下方法:

> irb
> 1.9.3p194 :001 > x = "that's an awesome string"
> => "that's an awesome string"
> 1.9.3p194 :002 > x.sub("'", "\'")
> => "that's an awesome string"
> 1.9.3p194 :003 > x.sub("'", "\\'")
> => "thats an awesome strings an awesome string"

但似乎无法获得正确的语法。

最佳答案

sub("'", "\'") 不起作用的原因是因为 "\'""'"。在双引号内,转义单引号是可选的。

sub("'", "\\'") 不起作用的原因是 "\\'" 扩展为反斜杠后跟单引号.在 subgsub 参数中,后跟一些字符的反斜杠具有与相应的全局变量相当的特殊含义。特别是在这种情况下,全局变量 $' 保存最后一个匹配点之后的子字符串。 subgsub 参数位置中的 "\\'" 指的是类似的东西。为了避免这种特殊约定,您应该将替换字符串放在 block 中而不是参数中,并且由于您不仅要匹配一个,所以应该使用 gsub 而不是 sub:

gsub("'"){"\\'"}

关于ruby - 如何转义 Ruby 中的单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com