Ruby удаляет пустые строки из строки - PullRequest
10 голосов
/ 07 сентября 2011

Как удалить пустые строки из строки?Я пробовал some_string = some_string.gsub (/ ^ $ /, "");

и многое другое, но ничего не работает.

Ответы [ 5 ]

22 голосов
/ 07 сентября 2011

Удалить пустые строки:

str.gsub /^$\n/, ''

Примечание: в отличие от некоторых других решений, это фактически удаляет пустые строки, а не разрывы строк:)

>> a = "a\n\nb\n"
=> "a\n\nb\n"
>> a.gsub /^$\n/, ''
=> "a\nb\n"

Объяснение: соответствует началу ^ и концу $ строки, в которой нет ничего, после чего следует разрыв строки.

Альтернативное, более явное (хотя и менее изящное) решение:

str.each_line.reject{|x| x.strip == ""}.join
11 голосов
/ 07 сентября 2011

squeeze (или squeeze!) Делает именно это - без регулярного выражения.

str.squeeze("\n")
4 голосов
/ 07 сентября 2011

Заменить несколько новых строк одним:

fixedstr = str.gsub(/\n\n+/, "\n") 

или

str.gsub!(/\n\n+/, "\n") 
3 голосов
/ 07 сентября 2011

Вы можете попытаться заменить все вхождения 2 или более разрывов строк только одним:

my_string.gsub(/\n{2,}/, '\n')
0 голосов
/ 07 сентября 2011

Первоначально

some_string = some_string.gsub(/\n/,'')

Обновлено

some_string = some_string.gsub(/^$\n/,'')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...