Ruby - 如何从字符串中删除一些字符?

时间:2012-08-21 08:32:30

标签: ruby string whitespace

我有以下字符串:

"  asfagds gfdhd"sss dg    "
"sdg "dsg          "

期望的输出:

asfagds gfdhd"sss dg
sdg "dsg

(从字符串的前端和末尾删除空格,以及前导和尾随双引号。)

我有一个包含这些行的大文件,我需要它们格式化我们的需求...我怎么能从相应文件的开头和结尾删除"并从开头删除空白区域文件的结尾?

4 个答案:

答案 0 :(得分:3)

使用string.stripstring.strip!

"  asfagds gfdhd\"sss dg    ".strip
"asfagds gfdhd\"sss dg"

请注意strip删除所有空格(fe。制表符,换行符),而不仅仅是空格。 如果您只想删除空格,请使用:

string.gsub /^ *| *$/, ''

如果您想删除"

string.gsub /^" *| *"$/, ''

答案 1 :(得分:2)

如果文件中的数据干净且均匀,那么应该这样做

'“asfagds gfdhd”sss dg“'[1 ..- 2] .strip

如果数据不干净,您可能还需要先做一个条带...(即如果在引号后面有尾随空格。

'“asfagds gfdhd”sss dg“'.strip [1 ..- 2] .strip

真的取决于文件中数据的清洁程度。

答案 2 :(得分:1)

使用strip

 "     Hello World     ".strip #=> "Hello World"

或者仅从左/右剥离分别使用lstriprstrip

答案 3 :(得分:1)

一个班轮:

irb> '"  asfagds gfdhd"sss dg    "'[1..-2].strip
 => "asfagds gfdhd"sss dg"

取[1,n-1]子串,删除空格