2011-09-07 148 views
8

如何从字符串中删除空行?我试过 some_string = some_string.gsub(/^$ /,“”);Ruby从字符串中删除空行

以及更多,但没有任何工作。

+0

可能重复[红宝石:修剪新空行(http://stackoverflow.com/questions/1040390/ruby-trim-new-blank-lines) – bragboy

+2

它不是一个副本。该标题*非常*容易误导 –

回答

20

删除空行:

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 
0

本来

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

更新

some_string = some_string.gsub(/^$\n/,'') 
+1

nope,这将删除字符串中的所有换行符 –

4

并设置一个只替换多个新行:

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

str.gsub!(/\n\n+/, "\n") 
3

你可以尝试更换的2个或更多行只有一个打破所有出现:

my_string.gsub(/\n{2,}/, '\n') 
10

挤了这一点 - 没有一个正则表达式。的

str.squeeze("\n")