已经存在类似的问题,但所有问题都使用regexen.我正在使用的代码(剥离分隔符):
string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
我想在句子分词上分割一段文字并保留句子终结符.我想避免使用regexen来提高性能.可能吗?
我不相信有一个现有的功能可以做到这一点.但是,您可以使用以下扩展方法.
public static IEnumerable<string> SplitAndKeepSeparators(this string source, string[] separators) {
var builder = new Text.StringBuilder();
foreach (var cur in source) {
builder.Append(cur);
if (separators.Contains(cur)) {
yield return builder.ToString();
builder.Length = 0;
}
}
if (builder.Length > 0) {
yield return builder.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)