Как я могу удалить строку "\ n" из строки Ruby? - PullRequest
105 голосов
/ 16 ноября 2010

У меня есть эта строка:

"some text\nandsomemore"

Мне нужно удалить из нее "\ n".Я пробовал

"some text\nandsomemore".gsub('\n','')

, но это не работает.Как мне это сделать?Спасибо за чтение.

Ответы [ 6 ]

154 голосов
/ 16 ноября 2010

Вам нужно использовать "\n", а не '\n' в вашем gsub.Различные кавычки ведут себя по-разному.

Двойные кавычки " допускают расширение символов и интерполяцию выражений, т.е.они позволяют вам использовать экранированные контрольные символы, такие как \n, для представления их истинного значения, в данном случае newline , и разрешают использовать #{expression}, чтобы вы могли переплетать переменные и, ну, в общем, почти любой рубинВыражение, которое вам нравится в тексте.

С другой стороны, одинарные кавычки ' обрабатывают строку буквально, поэтому здесь нет расширения, замены, интерполяции или чего-то еще.

В этомВ конкретном случае лучше использовать метод .delete или .tr String для удаления новых строк .

Подробнее см. здесь

55 голосов
/ 16 ноября 2010

Если вы хотите удалить строку, а не заменить ее, вы можете использовать String#delete (или ее эквивалент мутатора String#delete!), например:

x = "foo\nfoo"
x.delete!("\n")

x теперь равно "foofoo"

В этом конкретном случае String#delete более читабельно, чем gsub, поскольку вы фактически не заменяете строку чем-либо.

46 голосов
/ 12 июня 2014

Если вы хотите или не возражаете против удаления всех начальных и конечных пробелов из строки, вы можете использовать метод strip.

"    hello    ".strip   #=> "hello"   
"\tgoodbye\r\n".strip   #=> "goodbye"

как уже упоминалось здесь .

edit Оригинальное название этого вопроса было другим. Мой ответ на оригинальный вопрос.

28 голосов
/ 16 ноября 2010

Вам не нужно регулярное выражение для этого.Используйте tr:

"some text\nandsomemore".tr("\n","")
17 голосов
/ 30 августа 2014

использование chomp или strip функций из Ruby:

"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
2 голосов
/ 16 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...