2016-05-11 3 views
0

У меня есть сценарий, чтобы избежать одиночной обратной косой черты в строке, но она также может содержать двойную обратную косую черту.Убирайте только одиночную обратную косую черту и оставляйте двойную обратную косую черту

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\r\n" 

Для

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\\r\\n" 

Как мне это сделать в рубин. обратите внимание, что я сохраняю существующее двойное «нет».

Благодаря

+1

'\ r' является * один символ *, так же, как' \ n', '\ T' и' '' '\\. Это * не * обратная косая черта, сопровождаемая другим символом. – Stefan

+0

Ваш ввод кажется мне подозрительным, потому что он не соответствует соглашению остальной части строки. Я ожидал бы, если вы хотите \\ в качестве вывода, который у вас будет только в качестве входа. Моя кишка говорит, что вы на самом деле не хотите делать то, что вы говорите, что хотите ... –

+0

@RickSmith, я согласен с вами. Тем не менее, я получаю вход от редактора и somone добавил \ уже, что ускользнул в \\, но другие символы добавлены редактором. Поэтому у меня меньше контроля над этим. –

ответ

1

Как это:

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\r\n".gsub("\r","\\r").gsub("\n","\\n") 
+0

Эй Спасибо за ответ. Что делать, если я получаю «\ t», разве нет никакого общего решения в рубине? –

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