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
对于您的示例文本,在(?<=[.?!])'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."]
这里假设一个句子的定义是以.
、?
或!
结尾的。省略号(...
)会把它搞砸一点。