RegEx分割-保留标点符号

本文关键字:标点符号 保留 分割 RegEx | 更新日期: 2023-09-27 18:08:17

我有一个句子,看起来像这样:

"what is this? i want this to work. blah"

我如何得到一个包含标点符号的数组看起来像这样?

[0] = what is this?
[1] = i want this to work.
[2] = blah

RegEx分割-保留标点符号

对于您的示例文本,在(?<=[.?!])'s*上分割。

除此之外,我想补充的是,用regex可靠地将文本分割成句子是不可能的。

您可以使用Regex.Split来匹配标点符号前面的空白。

Regex.Split(input, "(?<=[.?!])'s+");

(?<=)为后视组。它检查匹配之前是否有组,但不捕获它。

你需要一个做子字符串替换的方法。对于Ruby的gsub,例如:

"I am a lion. Hear me roar! Where is my cub? Never mind, found him.".gsub(/[.?!]/, ''0|').split('|')
=> ["I am a lion.", " Hear me roar!", " Where is my cub?", " Never mind, found him."]

这里假设一个句子的定义是以.?!结尾的。省略号(...)会把它搞砸一点。