使用多个分隔符拆分字符串并保存分隔符

时间:2015-02-15 23:51:20

标签: c#

我试图通过多个分隔符来分割字符串。

我想把分隔符留在数组中..

Delimeters = ["'", "-", " ", "."];

例如:

input = Mr. Olive n-th indices - al al's k-2

output = ["Mr", ".", " ", "Olive", " ", "n", "-", "th", " ", "indices", 
          " ", "-", " ", "al", " ", "al", "'", "s", " ", "k", "-", "2"]

我知道类似的东西会在不保存分隔符的情况下拆分它:

String[] tokens = input.split("'|-|\\.| ");

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

String.Split不支持。但是你可以编写一个简单的方法:

public static string[] SplitWithDelimiters(this string source, params char[] delimiters)
{
     var temp = new List<char>();
     var parts = new List<string>()
     foreach(var c in source)
     {
         if(delimiters.Contains(c))
         {
             if(temp.Any()) 
             {
                  parts.Add(new string(temp.ToArray()));
                  temp.Clear();
             }
             parts.Add(c.ToString()); 
         }
         else
         {
             temp.Add(c);
         }
     }

     return parts.ToArray();
}