已经存在类似的问题,但所有这些问题都使用regexen。我正在使用的代码(剥离分隔符):C#拆分字符串但保留分隔符
string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
我想在句子中断时分割一段文本并保留句子终止符。我想避免使用正则表达式。可能吗?
已经存在类似的问题,但所有这些问题都使用regexen。我正在使用的代码(剥离分隔符):C#拆分字符串但保留分隔符
string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
我想在句子中断时分割一段文本并保留句子终止符。我想避免使用正则表达式。可能吗?
我不相信有这样做的现有功能。但是,您可以使用以下扩展方法。
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();
}
}
可能重复http://stackoverflow.com/questions/521146/c-split-string-but-keep-split-chars – 2011-04-11 17:53:23
有没有什么不能或不想使用正则表达式的理由 – rerun 2011-04-11 17:54:15
有趣。该副本的标题是“C#拆分字符串,但保留拆分字符”。 – 2011-04-11 17:56:54