在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"