如何使用Ruby删除回车而不用“ - ”或空格

时间:2017-04-28 11:47:03

标签: ruby

我想从以下位置删除回车:

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      "

我希望价值如下:

"LIC_001 , LIC_002  "

我试过了:

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      ".gsub!("\r\n", " - ")

请建议我如何做到这一点。

5 个答案:

答案 0 :(得分:3)

这应该可以解决问题:

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      ".squish
#=> "LIC_001 , LIC_002"

答案 1 :(得分:1)

str = "LIC_001  \r\n      ,\r\n        LIC_002  \r\n      "  
str.split(',').map(&:squish)
# => ["LIC_001", "LIC_002"]
str.split(',').map(&:squish).join(" , ")
# => "LIC_001 , LIC_002"

答案 2 :(得分:1)

您可以使用gsub的空格替换多个空格,并使用strip!删除尾随和前导空格:

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      ".gsub(/\s+/,' ').strip!
# "LIC_001 , LIC_002"

这两种方法都是标准的Ruby。

如果您的字符串包含unicode空格,则可以使用

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      ".gsub(/[[:space:]]+/,' ').strip!
# "LIC_001 , LIC_002"

答案 3 :(得分:0)

您可以使用split / join和正则表达式:

str = "LIC_001  \r\n      ,\r\n        LIC_002  \r\n      "
puts str.split(/[\n\r, ]+/).join(" , ")

答案 4 :(得分:0)

您是否尝试过以下操作?

"LIC_001  \r\n      ,\r\n        LIC_002  \r\n      ".gsub!("\r\n", "")

如果是这样,请解释为什么它没有给你想要的结果......