为什么在单引号字符串中需要双反斜杠转义?

时间:2013-01-10 14:37:37

标签: ruby string escaping quotes

只是好奇Ruby开发人员决定解释单引号内的双反斜杠转义序列的原因。我可以理解为什么必须解释转义的单引号,因为无法插入单引号字符。例如:

'\'' == "'"

但请考虑'\\' == "\\"。为什么这是另一个特例?

3 个答案:

答案 0 :(得分:2)

为了结束带反斜杠的字符串

最初在硬引用字符串中需要的一个转义符是\',其他人也会注意到。

\\ 所需要的真正根本原因是,一旦\'受到支持,否则就无法 结束 带有反斜杠的硬引号字符串。

答案 1 :(得分:1)

这是插入反斜杠本身。如果没有这种特殊情况,就不可能在单引号字符串中使用反斜杠。

\'\\ are the only two escape sequences in single-quoted strings

答案 2 :(得分:0)

Apostrophes

需要逃脱

这种特殊情况对于将单引号或撇号嵌入单引号字符串是必要的。请考虑以下事项:

'\''
# => "'"

'It\'s a baby boy!'
# => "It's a baby boy!"

没有转义,Ruby会假设第二个引号标记终止字符串,留下不平衡的第三个引号。

斜杠需要转义

作为前一个的推论,您需要转义转义字符以避免转义后续字符。例如,'\'表示要转义第二个引号,留下未终止的字符串。但是,'\\'会在字符串中生成一个文字斜杠。