如何用正则表达式拆分红宝石字符串?

时间:2019-05-05 13:57:28

标签: regex ruby

嗨,我想将此字符串拆分为以下内容。

text = "In the last summer, I visited the U.S. with my friend. It was great experience. I loved an ice cream in the U.S. Welcome to U.S.A. pal!"
In the last summer, I visited the U.S. with my friend.
It was great experience.
I loved an ice cream in the U.S.
Welcome to U.S.A. pal!

很显然,我无法应用text.split(".")text.split(". ")。因此,首要原则是字符串将被"."分割,但缩写词除外。但是,我不知道如何在Ruby中做到这一点。

似乎使用Regex可能有效,但我不知道如何执行此操作。您能分享您的想法吗?

1 个答案:

答案 0 :(得分:4)

基本上,您希望在句点之后在空格处进行分割,后跟一个大写字母:

text.split(/(?<=\.)\s+(?=[[:upper:]])/)

正则表达式将仅与空白\s+相匹配,但请确保在其后加一个在(?<=\.)之后使用正向后缀的句点,并在其后使用一个正向搜索(?=[[:upper:]])后的大写字母