?,./ 用双引号括起来是行不通的,那么有没有一个很好的 escape_until_the_-6ren">
gpt4 book ai didi

ruby - 在 Ruby 中转义字符串

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

我想在某些 Ruby 中插入以下内容作为变量的值:

`~!@#$%^&*()_-+={}|[]\:";'<>?,./

用双引号括起来是行不通的,那么有没有一个很好的 escape_until_the_end 之类的东西可用?

最佳答案

不要使用多种方法 - 保持简单。

转义 #、反斜杠和双引号。

irb(main):001:0> foo = "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"
=> "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"

或者,如果您不想转义 #(双引号字符串中变量的替换字符),请改用并转义单引号:

irb(main):002:0> foo = '`~!@#$%^&*()_-+={}|[]\\:";\'<>?,./'
=> "`~!@\#$%^&*()_-+={}|[]\\:\";'<>?,./"

%q 对于许多其他不包含每个 ascii 标点字符的字符串来说非常有用。 :)

%q(text without parens)
%q{text without braces}
%Q[text without brackets with #{foo} substitution]

编辑:显然你也可以在 %q() 中成功使用平衡括号,但我认为从维护的角度来看这有点危险,因为那里没有语义暗示你总是必须平衡你的括号在一个字符串中。

关于ruby - 在 Ruby 中转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634349/

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