Как удалить newLines в начале и в конце строки Ruby - PullRequest
18 голосов
/ 24 августа 2011

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

Но ТОЛЬКО в начале и в конце ... Новые строки, расположенные всередина строки должна оставаться нетронутой.

Спасибо!

Ответы [ 5 ]

36 голосов
/ 24 августа 2011

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

"\tgoodbye\r\n".strip   #=> "goodbye"
3 голосов
/ 24 августа 2011

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

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

1 голос
/ 07 сентября 2013

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

"\nabc\ndef\n".gsub(/^#{$/}/, "").gsub(/#{$/}$/, "")
1 голос
/ 24 августа 2011

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

"\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. Возможно, это не зависит от платформы.

0 голосов
/ 24 августа 2011

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

string.lstrip!.rstrip!
...