Вы можете разбить ваш string
на две части, чтобы прояснить ситуацию:
string = '\\' + '\''
Каждая часть представляет собой строку длиной один;'\\'
это один символ \
, а '\''
это один символ '
.Когда вы складываете их вместе, вы получаете строку из двух символов \'
.
В одном строковом литерале, заключенном в одну кавычку, есть два специальных символа: обратная косая черта и сама одинарная кавычка.Символ одинарной кавычки, конечно же, используется для разделения строки, поэтому вам нужно что-то особенное, чтобы вставить одинарную кавычку в строку, заключенную в одну кавычку, что-то особенное - это обратный слеш, поэтому '\''
- это одиночные кавычкистроковый литерал, представляющий строку, содержащую один символ одинарной кавычки.Точно так же, если вам нужно получить обратную косую черту в строковом литерале в одну кавычку, вы избегаете его с другой обратной косой чертой, поэтому '\\'
имеет длину один и содержит одну обратную косую черту.
Символ одинарных кавычек не имеет специального значения в двойномстроковый литерал в кавычках, так что вы можете сказать "'"
без каких-либо затруднений.Обратная косая черта, однако, имеет специальное значение в строках с двойными кавычками, поэтому вы должны сказать "\\"
, чтобы получить одну обратную косую черту в вашей строке с двойными кавычками.
Считайте, что вы угадали "\'"
.Одинарная кавычка не имеет особого значения в строке с двойными кавычками, и экранирование чего-то, что не требует экранирования, просто возвращает вам что-то ;Итак, если c
является символом, который не нужно экранировать внутри строки в двойных кавычках, тогда \c
будет просто c
.В частности, "\'"
оценивается как "'"
(то есть одна одиночная кавычка в строке с двойными кавычками).
В результате получается:
'\\\'' == "\\'"
"\\\"" == '\\"'
"\'" == '\''
"\'" == "'"
'\\\''.length == 2
"\\\"".length == 2
"\'".length == 1
"'".length == 1
Ссылка Wikibooks , которую Кассим дал, охватывает эти вещи.
Обычно я переключаюсь на %q{}
(аналогично одинарным кавычкам) или %Q{}
(аналогично двойным кавычкам) когда мне нужно получить кавычки в строки, все обратные косые черты заставляют мои глаза кровоточить.