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;\/,“”)
呢?但是,转义符号