-1
我想致电User.first
,但我知道它是"User.first"
。如何去掉引号,以便我可以拨打User
?使用这样的正则表达式:gsub!(/\A"|"\Z/, "")
返回nil
而不是表达式。删除对象中的引号
我想致电User.first
,但我知道它是"User.first"
。如何去掉引号,以便我可以拨打User
?使用这样的正则表达式:gsub!(/\A"|"\Z/, "")
返回nil
而不是表达式。删除对象中的引号
首先,我要说的是,这是危险的依据您的输入是来自做到这一点,但如果你绝对需要运行字符串中包含的任意Ruby代码,你可以使用eval
:
http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-eval
同样,如果可能的话,我会避免评估字符串。
正则表达式适用于我。报价是否真的是字符串的一部分? – Meier
@Meier,上述不起作用,因为gsub只评估字符串内部的内容。这就是为什么它返回零。如果我做'User.first'“gsub!(/ \ A'|'\ Z /,”“),我会返回”User.first“,因为单引号是字符串的一部分,但双引号不是。 kevinthompsons的答案是正确的。 – Arel
所以引号不是字符串的一部分。引号只是ruby解释器知道里面是字符串所需的语法。引号在运行时不存在,这就是为什么试图用gsub删除它们失败的原因。 – Meier