已經存在類似的問題,但所有這些問題都使用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