如何删除 Ruby 中句子之间多余的空格?

How do I remove extra white spaces between sentences in Ruby?

我的字符串在句子之间有额外的白色 space。该字符串旨在供人类阅读,因此句点和下一句开头之间应该只有两个 space。

句子中单词之间的空格应保持为单个 space,多余的 space 应删除。

如何在 Ruby 中执行此操作?

假设你用. ! ?来分隔句子,你可以先用squeeze处理那些多余的空格,然后在. ! ?后面加上两个空格用gsub.

p = "The first line.    The   second   line! The   third  line?"
p.squeeze(" ").gsub(/([.?!]) */,'  ')
=>"The first linee.  The second line!  The third line?  "