簡體   English   中英

C#split string但保留分隔符

[英]C# split string but keep separators

已經存在類似的問題,但所有問題都使用regexen。 我正在使用的代碼(剝離分隔符):

string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);

我想在句子分詞上分割一段文字並保留句子終結符。 我想避免使用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();
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM