Похоже, вы немного смущены (понятно, что так) возвращенным результатом.Имейте в виду, что в irb последний результат форматируется с использованием .inspect
, что означает, что он оборачивает строки в двойные кавычки, а затем экранирует символы (обратные слэши и двойные кавычки) ', которые необходимо экранировать в строке в двойных кавычках.Это делается для того, чтобы различать строки и другие значения, такие как числа, массивы, хэши и т. Д.
Однако это только результат проверки.если вы используете put для вывода значения, оно будет выводиться без экранирования - это более точное представление вашего значения. Значение, отображаемое put, является реальным значением, и что будет сохранено, если вы сохраните значение в переменной.
Если вы все еще не можете сказать, как выглядит ваша строка, попробуйте следующее:
temp = string.gsub(/\"/,%q(\\\'))
temp.split('')
=> ["\\", "'", "N", "e", "w", "e", "g", "g", ".", "c", "o", "m", "\\", "'", " ", "<", "P", "r", "o", "m", "o", "@", "e", "m", "a", "i", "l", ".", "n", "e", "w", "e", "g", "g", ".", "c", "o", "m", ">"]
Это разбивает вашу строку на массив из отдельных символов и может упростить ее просмотр.именно то, что в вашей строке.Обратите внимание, что у вас есть символ \
(отображается как "\\"
, но поскольку каждая строка гарантированно будет иметь длину ровно один символ, вы знаете, что она отображается таким образом из-за проверки) и символ '
в начале.