Как удалить новые строки в начале и в конце строки Ruby



Мне нужно удалить новые строки в начале и в конце строки в ruby (своего рода обрезка).



Но только в начале и в конце... Новые строки, расположенные в середине строки, должны оставаться нетронутыми.



Спасибо!

677   5  

5 ответов:

Можно использовать метод String#strip.

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

Строка.полоска удалит все лишние пробелы спереди и сзади, оставив внутренности в покое.

Http://ruby-doc.org/core/classes/String.html#M001189

Если ваше намерение состоит в том, чтобы удалить только пробелы, то метод полосы должен работать...но если вы пытаетесь нацелиться на новые строки специально, то, возможно, попробуйте это:

"\r\na b c d\r\ne f g\r\n".gsub(/^\r\n/, "").gsub(/\r\n$/, "")
=> "a b c d\r\ne f g"

Метод gsub будет использовать регулярное выражение для определения местоположения начала ^ и конца $ для замены на "".

Примечание: здесь я сделал предположение, что Ваша новая строка является \r\n. это не может быть независимым от платформы.

Независимая от платформы версия ответа NPatel такова:

"\nabc\ndef\n".gsub(/^#{$/}/, "").gsub(/#{$/}$/, "")

Это должно сделать:

string.lstrip!.rstrip!

Comments

    Ничего не найдено.