2015-12-08 4 views
0

Я хочу напечатать escaped или raw версия строки. Например: учитывая эту строку:Как напечатать необработанную строку в рубине?

"a, 
b, 
c, 
d" 

Я хочу, чтобы получить

"a,\nb,\nc,\nd". 

возможно ли это?

+2

Ваш вопрос не ясен, отчасти потому, что это только новые строки, которые вы ускользают в вашем примере. Пожалуйста, определите, что вы подразумеваете под «экранированной или необработанной версией строки». Кроме того: когда вы приводите пример (который обычно наиболее полезен), назначьте переменную каждому из ваших входных объектов (например, 'str =" a, .... "'). Таким образом, читатели могут ссылаться на эти переменные в ответах и ​​комментариях, не определяя их. –

ответ

4
s = "a, 
b, 
c, 
d" 
s.dump 
# => "\"a,\\nb,\\nc,\\nd\"" 
s.dump[1...-1] 
# => "a,\\nb,\\nc,\\nd" 
3
string = 'a, 
b, 
c, 
d' 

> p string.inspect 
#=> "\"a,\\nb,\\nc,\\nd\"" 
# "*** expected output ***" 
> p string.inspect.delete('\"') 
#=> "a,\\nb,\\nc,\\nd" 

Demo

+1

Я думаю, что лучше отрезать, чем 'delete', если строка может содержать' '' –

Смежные вопросы