首页 > 解决方案 > 从 Ruby 中的字符串中删除“\r”或回车符

问题描述

我正在使用 CloudMailin 接收电子邮件,然后将纯文本发送到我的 Ruby on Rails 应用程序。要以纯文本形式访问电子邮件正文,我使用 params[:plain]。

如果我只打印纯文本的相关部分,它将如下所示:

Style 130690 113
Price $335.00
Stock # 2882524

我使用正则表达式来命名捕获某些数据:

style, price, stock = params[:plain].scan(/^(?:Style |Price \$|Stock \# )(.+)/).flatten

这可行,但是每个变量最后都有一个“\r”或回车。因此,如果库存是 80201943,它将在我的数据库中显示为“80201943\r”。

然后我尝试使用以下代码更新我的数据库:

shoe = Shoe.where(:size => "7").first
shoe.update_column(:stockId, stock)

然后,当我检查我的数据库时, :stockId 的末尾有一个“\r”。

我试过做

stock.chomp("\r")

stock.chomp

stock.strip

stock.gsub("\r", ""),

这些都没有从字符串中删除“\r”。我怎样才能删除它?

标签: ruby

解决方案


我没有改变变量,我只是返回一个新变量。要更改我需要使用的变量:

stock.chomp!

推荐阅读