У меня есть такая строка:
"some text\nandsomemore"
Мне нужно удалить с него "\ n". я пробовал
"some text\nandsomemore".gsub('\n','')
но это не работает. Как мне это сделать? Спасибо за прочтение.
Вам нужно использовать "\n"
not '\n'
in your gsub. Различные кавычки ведут себя по-разному.
Двойные кавычки "
допускают расширение символов и интерполяцию выражений, т.е. они позволяют использовать экранированные управляющие символы, например, \n
для представления их истинного значения, в данном случае новую строку , и позволяют использовать, #{expression}
так что вы можете вплетать переменные и, ну, почти любое выражение рубина, которое вам нравится, в текст.
С другой стороны, одинарные кавычки '
трактуют строку буквально, поэтому нет расширения, замены, интерполяции или чего-то еще.
В этом конкретном случае лучше использовать метод .delete
или .tr
String для удаления новых строк .
tr
это лучший выбор для этой задачи, но, как я уже сказал, я решил, что лучше указать разницу в одинарных и двойных кавычках, когда я отвечал.Если вы хотите удалить строку, а не заменить ее, вы можете использовать
String#delete
(или ее эквивалент-мутаторString#delete!
), например:x
теперь равно "дурак"В этом конкретном случае
String#delete
он более читабелен, чемgsub
поскольку вы фактически ничем не заменяете строку.источник
delete
является деструктивным, как указано здесь. Возвращает новую строку.Если вы хотите или не возражаете против удаления всех начальных и конечных пробелов из вашей строки, вы можете использовать этот
strip
метод.как упоминалось здесь .
edit Первоначальный заголовок этого вопроса был другим. Отвечаю на исходный вопрос.
источник
strip
удаляет только начальныеДля этого вам не нужно регулярное выражение. Используйте tr:
источник
replace
просто меняет строку на новую, как присвоение переменной; тогда какtr
это глобальный посимвольный поиск и замена.используйте функции
chomp
илиstrip
из Ruby:источник
strip
удаляет только начальныеСмотри сюда:
источник