在ruby中转义字符串中的单引号和双引号?

在ruby中转义字符串中的单引号和双引号?,ruby,escaping,Ruby,Escaping,如何在字符串中转义单引号和双引号 我想同时避开单引号和双引号。我知道如何分别通过,但不知道如何同时通过 e、 g:str=“ruby”on rails”“=ruby”on rails”您可以使用Q字符串,它允许您使用任何您喜欢的分隔符: str = %Q|ruby 'on rails" " = ruby 'on rails| 我的首选方法是不用担心转义,而是使用%q,其行为类似于单引号字符串(无插值或字符转义),或者使用%q进行双引号字符串行为: str = %q[ruby 'on rails

如何在字符串中转义单引号和双引号

我想同时避开单引号和双引号。我知道如何分别通过,但不知道如何同时通过


e、 g:
str=“ruby”on rails”“=ruby”on rails”

您可以使用Q字符串,它允许您使用任何您喜欢的分隔符:

str = %Q|ruby 'on rails" " = ruby 'on rails|

我的首选方法是不用担心转义,而是使用
%q
,其行为类似于单引号字符串(无插值或字符转义),或者使用
%q
进行双引号字符串行为:

str = %q[ruby 'on rails" ] # like single-quoting
str2 = %Q[quoting with #{str}] # like double-quoting: will insert variable

请参阅并搜索
%字符串

使用反斜杠转义字符

str = "ruby \'on rails\" "

下面是如何在更复杂的场景中使用
%Q[]
的示例:

  %Q[
    <meta property="og:title" content="#{@title}" />
    <meta property="og:description" content="#{@fullname}'s profile. #{@fullname}'s location, ranking, outcomes, and more." />
  ].html_safe
%Q[
].html_安全
如果我开始担心逃跑,我会选择a。它将为您解决这一问题:

string = <<MARKER 
I don't have to "worry" about escaping!!'"!!
MARKER

以下是完整的列表:

中,我只会使用:

str=%(ruby“on rails”)
因为just
%
代表双引号(或%Q),并允许在字符串上插入变量。

一个警告:

使用
%Q[]
%Q[]
进行字符串比较从直觉上看并不安全

例如,如果加载表示空的内容,如
,则需要使用实际的转义序列。例如,假设
qvar
等于
,而不是任何空字符串

这将计算为
false

如果qvar==%Q[]”

与此一样,
如果qvar==%Q[]

而这将计算为
true

如果qvar==“\”\“\”


我在将命令行变量从另一个堆栈发送到ruby脚本时遇到了这个问题。只对我有效。

我有搜索栏并解析了这个“sdasd”“fsd”及其gives me=Q | sdasd”,它在rails上用ruby'引用\“,我不要求额外\仅当您检查转义时才显示转义。请尝试将其改为
put
string变量。对于string变量,请将双引号转义为value.gsub(““,“\”)。请注意,使用heredoc引用小字符串是一种笨拙的方法。这个问题需要的是一个元答案,列出所有引用选项及其优缺点。非常正确,马克。我应该注意到在小弦上使用它们是很恶心的。
string = <<MARKER 
I don't have to "worry" about escaping!!'"!!
MARKER
string
=> "I don't have to \"worry\" about escaping!!'\"!!\n"