Как я могу удалить строку "n"из строки Ruby?
у меня есть эта строка:
"some textnandsomemore"
мне нужно удалить "n " из него. Я пробовал
"some textnandsomemore".gsub('n','')
но это не работает. Как мне это сделать? Спасибо за чтение.
6 ответов:
вы должны использовать
"\n"не'\n'в gsub. Различные кавычки ведут себя по-разному.двойные кавычки
"разрешено расширение характера и выражения интерполяции, т. е. они позволяют использовать экранированные контрольные символы, такие как\nчтобы представить их истинное значение, в данном случае,новая строка, и разрешить использование#{expression}таким образом, вы можете вплетать переменные и, ну, почти любое рубиновое выражение, которое вам нравится в текст.в то время как с другой стороны, одинарные кавычки
'относиться к строке буквально, так что нет расширения, замены, интерполяции или что у вас есть.в данном конкретном случае лучше использовать
.deleteили.trстроковый метод для удаления строки.
когда вы хотите удалить строку, а не заменить его, вы можете использовать
String#delete(или его эквивалентом мутаторString#delete!), например:x = "foo\nfoo" x.delete!("\n")
xТеперь равно "foofoo"в данном конкретном случае
String#deleteчитается лучше, чемgsubпоскольку вы на самом деле не заменяете строку ничем.
Если вы хотите или не возражаете, чтобы все ведущие и конечные пробелы из вашей строки были удалены, вы можете использовать
stripметод." hello ".strip #=> "hello" "\tgoodbye\r\n".strip #=> "goodbye"Как уже упоминалось здесь.
edit оригинальное название для этого вопроса было другим. Мой ответ на первоначальный вопрос.