Как я могу удалить строку "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 оригинальное название для этого вопроса было другим. Мой ответ на первоначальный вопрос.