Ruby on rails Ruby:删除新行,从文本返回回车

Ruby on rails Ruby:删除新行,从文本返回回车,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我有一个这样的文本字符串,我需要删除所有回车和反斜杠 text.gsub(/\r?\n|\r/, "") 一头牛来到芦苇丛中喝水。当他重重地溅起水花时 在水里,他把一只小青蛙踩进泥里。\r\n\r\n老青蛙 很快,小男孩就想起来了,问他的兄弟姐妹们发生了什么事 成为他。\r\n\r\n \“一个巨大的怪物,”其中一个说, \“用一只大脚踩在弟弟身上”\“\r\n\r\n\”大, “是他!”老青蛙自夸着说\“他和我一样大吗 这个?\“\r\n\r\n\”哦,大得多!\”他们喊道。\r\n\r\n

我有一个这样的文本字符串,我需要删除所有回车和反斜杠

text.gsub(/\r?\n|\r/, "")
一头牛来到芦苇丛中喝水。当他重重地溅起水花时 在水里,他把一只小青蛙踩进泥里。\r\n\r\n老青蛙 很快,小男孩就想起来了,问他的兄弟姐妹们发生了什么事 成为他。\r\n\r\n \“一个巨大的怪物,”其中一个说, \“用一只大脚踩在弟弟身上”\“\r\n\r\n\”大, “是他!”老青蛙自夸着说\“他和我一样大吗 这个?\“\r\n\r\n\”哦,大得多!\”他们喊道。\r\n\r\n青蛙喘着气 更进一步。\r\n\r\n\“他不可能比这更大,”她说 说。但是小青蛙们都说怪物很可怕, 这只老青蛙越来越大,不停地吹气 直到她突然爆发。\r\n

我试过了,但还是没有反斜杠

text.gsub(/\r?\n|\r/, "")
“一头牛来到一个长满芦苇的池子边喝水。他重重地溅起水花 在水里,他把一只小青蛙踩进泥里。老青蛙很快就死了 想念小男孩,问他的兄弟姐妹们发生了什么事 “一个巨大的怪物,”其中一个说,“走了 用一只大脚踩在弟弟身上\“\”他太大了\”她说 老青蛙自吹自擂。“他有这么大吗?”“哦, 大得多\“他们喊道。青蛙更加膨胀了。\”他可以 “没有比这更大的了,”她说。但是这些小青蛙 宣布怪物越来越大,老青蛙一直在 她越来越气喘吁吁,直到突然爆发。”

下面的表达式在包含单个反斜杠时似乎与正确的模式匹配,但在我的控制台(Ruby 2.2.1)中似乎不起作用

注意:为了完全公开,此文本字符串在HTML编辑器中捕获并存储到数据库列中。我需要去掉HTML字符,我使用以下代码-

text = ActionView::Base.full_sanitizer.sanitize(page.content).gsub(/\r?\n|\r\\|\\/, "")

我感谢你能提供的任何帮助

执行此操作的最有效方法是(或
#delete!
):

输出:

“一头牛来到一个长满芦苇的池子边喝水。他重重地溅起水花 在水里,他把一只小青蛙踩进泥里。老青蛙很快就死了 想念小男孩,问他的兄弟姐妹们发生了什么事 “一个巨大的怪物,”其中一个说,“踩到了他。” 有一只大脚的小弟弟\“\”他太大了\”他说 老青蛙自吹自擂。“他有这么大吗?”“哦,太大了。” 更大\“他们喊道。青蛙又鼓起了气。\”他不可能 “比这还大,”她说。但小青蛙们都说 怪物越来越大,老青蛙还在喘气 她自己越来越不耐烦,直到突然爆发。”

一头牛来了 到一个满是芦苇的池子里喝。当他重重地溅入水中时, 他把一只小青蛙踩在泥里。老青蛙很快就错过了比赛 小男孩问他的兄弟姐妹们,他们的孩子怎么样了 “一个巨大的怪物,”其中一个说,“踩到了小男孩。” 有一只大脚的哥哥。“他真大!”老青蛙说, 自吹自擂。“他有这么大吗?”“哦,大得多!”他们问 青蛙叫了起来。青蛙更加气喘吁吁地说:“他不可能再大了 她说。但是小青蛙们都宣称 怪物越来越大了,老青蛙不停地自吹自擂 越来越多地出去,直到她突然爆发

基准结果:

Warming up --------------------------------------
         String#gsub     2.826k i/100ms
           String#tr    35.794k i/100ms
       String#delete    37.147k i/100ms
Calculating -------------------------------------
         String#gsub     29.801k (± 2.8%) i/s -    149.778k in   5.030044s
           String#tr    399.391k (± 3.3%) i/s -      2.004M in   5.024297s
       String#delete    411.065k (± 4.0%) i/s -      2.080M in   5.068783s

我对String#gsub方法使用了
/\R+\124; \/

执行此操作的最有效方法是使用(或
\delete!
):

输出:

“一头牛来到一个长满芦苇的池子边喝水。他重重地溅起水花 在水里,他把一只小青蛙踩进泥里。老青蛙很快就死了 想念小男孩,问他的兄弟姐妹们发生了什么事 “一个巨大的怪物,”其中一个说,“踩到了他。” 有一只大脚的小弟弟\“\”他太大了\”他说 老青蛙自吹自擂。“他有这么大吗?”“哦,太大了。” 更大\“他们喊道。青蛙又鼓起了气。\”他不可能 “比这还大,”她说。但小青蛙们都说 怪物越来越大,老青蛙还在喘气 她自己越来越不耐烦,直到突然爆发。”

一头牛来了 到一个满是芦苇的池子里喝。当他重重地溅入水中时, 他把一只小青蛙踩在泥里。老青蛙很快就错过了比赛 小男孩问他的兄弟姐妹们,他们的孩子怎么样了 “一个巨大的怪物,”其中一个说,“踩到了小男孩。” 有一只大脚的哥哥。“他真大!”老青蛙说, 自吹自擂。“他有这么大吗?”“哦,大得多!”他们问 青蛙叫了起来。青蛙更加气喘吁吁地说:“他不可能再大了 她说。但是小青蛙们都宣称 怪物越来越大了,老青蛙不停地自吹自擂 越来越多地出去,直到她突然爆发

基准结果:

Warming up --------------------------------------
         String#gsub     2.826k i/100ms
           String#tr    35.794k i/100ms
       String#delete    37.147k i/100ms
Calculating -------------------------------------
         String#gsub     29.801k (± 2.8%) i/s -    149.778k in   5.030044s
           String#tr    399.391k (± 3.3%) i/s -      2.004M in   5.024297s
       String#delete    411.065k (± 4.0%) i/s -      2.080M in   5.068783s

我对字符串gsub方法使用了
/\R+\/

关于
text.gsub(/\R+\/,'')
?但是,转义符号很可能在实际输入中丢失。@WiktorStribiżew这些不是实际的反斜杠。这是ruby的
如何将
输出为双引号。这仍然返回一个反斜杠是的,
/\R+/
就足够了:)从您的问题中不清楚字符
\\\
R
是否在字符串中,或者它们是否(如标题所示)是实际的回车字符。还不清楚您的字符串是用双引号字符(
)包装的,还是用Ruby表示字符串。那么
text.gsub(/\R+\124;\/,“”)
呢?但是,转义符号