Ruby on rails 稍微好一点的删除新行的方法
我有一个包含多个换行符的文本/字符串。如以下示例所示:Ruby on rails 稍微好一点的删除新行的方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个包含多个换行符的文本/字符串。如以下示例所示: "This is a test message : \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n " 我可以用空格gsub all\n并将其全部删除。我怎样才能做到以下几点: 如果我看到
"This is a test message : \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
"
我可以用空格gsub all\n
并将其全部删除。我怎样才能做到以下几点:
- 如果我看到有两个以上的
,请在文本中只留下两行换行符\n
s
包含您的字符串):
如果要允许换行符之间存在任意数量的交错空格字符,并将其删除,最好使用:
s.gsub /\n *(\n *)+/, "\n\n"
如果要删除除前两行以外的所有新行,可以使用传递给
gsub
的块:
hits = 0
text.gsub(/\n/) { (hits = hits + 1) > 2 ? '' : "\n" }
# => "This is a test message : \n \n "
您的意思是,只允许两个后续换行符之间没有任何内容?所以
\n\n\n\n
可以,但是\n\n\n
将更改为\n\n\n
?还是所有新的生产线都被删除,只留下两条?如果是这样的话,哪两个?请给我们一个您期望的输出示例,将测试消息作为输入。领导新的生产线怎么样?课文中间的新行怎么办?新行是否总是尾随?
hits = 0
text.gsub(/\n/) { (hits = hits + 1) > 2 ? '' : "\n" }
# => "This is a test message : \n \n "