Ruby 或正则表达式去除多余的换行符

标签 ruby regex line-breaks

你会如何改变这个:

Dear Fred



How are you?






Regards
John

进入这个:

Dear Fred

How are you?

Regards
John

注意:单断和双断是允许的,但不能超过。例如,我们想从:

"Dear Fred\n\n\n\nHow are you?\n\n\n\n\n\n\nRegards\nJohn"

"Dear Fred\n\nHow are you?\n\nRegards\nJohn"

但也适用于“\r\n”。

最佳答案

是这样的吗?

s.gsub /(\r?\n){3,}/, '\1\1'

似乎至少适用于您的示例:

irb(main):060:0> s
=> "Dear Fred\n\n\n\nHow are you?\n\n\n\n\n\n\nRegards\nJohn"
irb(main):061:0> s.gsub /(\r?\n){3,}/, '\1\1'
=> "Dear Fred\n\nHow are you?\n\nRegards\nJohn"

关于Ruby 或正则表达式去除多余的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3794869/

相关文章:

php - 如何用 <br/> 替换换行符或\r\n?

css - 列表中的链接带来换行符

javascript - 从移动浏览器在 whatsapp 中打开文本的自定义 URL 方案,换行符/换行符不起作用

python - 如何根据 Python 中的分隔符从 pandas 数据框列中的值创建新行?

Java split() 方法不会再次起作用

regex - 如何在SQLite中使用字符列表匹配字符串

ruby - 与此命令等效的 Ruby OpenSSL 库是什么?

ruby-on-rails - 新兴 Rubyist 的最佳源代码

mysql - 使用net/ssh/gateway建立到mysql的ssh隧道

ruby - 我可以使用 RSpec 模拟标准输入/标准输出来测试控制台读写吗?