Ruby 读一个文件,在看到句号后,将句子移到下一行

Ruby 读一个文件,在看到句号后,将句子移到下一行,ruby,Ruby,输入文件: Ruby是一种动态的、反射的、面向对象的、通用的 编程语言。它是在20世纪90年代中期设计和开发的 由日本松本由纪弘“Matz”撰写。根据其作者,Ruby 受Perl、Smalltalk、Eiffel、Ada和Lisp的影响 输出文件: Ruby是一种动态的、反射的、面向对象的、通用的 编程语言。 它是在20世纪90年代中期设计和开发的 由日本的松本幸弘“Matz”创作。 据其作者称,Ruby 受Perl、Smalltalk、Eiffel、Ada和Lisp的影响 你可以用 使用正则表

输入文件:

Ruby是一种动态的、反射的、面向对象的、通用的 编程语言。它是在20世纪90年代中期设计和开发的 由日本松本由纪弘“Matz”撰写。根据其作者,Ruby 受Perl、Smalltalk、Eiffel、Ada和Lisp的影响

输出文件:

Ruby是一种动态的、反射的、面向对象的、通用的 编程语言。
它是在20世纪90年代中期设计和开发的 由日本的松本幸弘“Matz”创作。 据其作者称,Ruby 受Perl、Smalltalk、Eiffel、Ada和Lisp的影响

你可以用

使用正则表达式:

puts input.split(/((?<=[a-z0-9)][.?!])|(?<=[a-z0-9][.?!]"))\s+(?="?[A-Z])/)
# Ruby is a dynamic, reflective, object-oriented, general-purpose programming language.
#
# It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
# 
# According to its authors, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.

puts input.split(/(?Standford parser我遇到了一个错误,但使用正则表达式可以工作!)你能解释一下你是如何编写正则表达式的吗?这样我也可以用它来对齐c代码。@Shivam你在尝试StanfordParser之前安装了gem吗?安装方法:
gem install StanfordParser
是的,我不知道Stanford解析器,我会再试一次。但是正则表达式真的很正常!
puts input.split(/((?<=[a-z0-9)][.?!])|(?<=[a-z0-9][.?!]"))\s+(?="?[A-Z])/)
# Ruby is a dynamic, reflective, object-oriented, general-purpose programming language.
#
# It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
# 
# According to its authors, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.