我想使用多个分隔符来分割字符串,如下所示:
"aa*ab+ac/ad-ae=af;ag".Split(new string[] { ";", "*", "+", "/", "-" })
返回
{ "aa", "ab", "ac", "ad", "ae", "af", "ag" }
但是,如果我希望将分隔符保留在最终数组中,例如
,该怎么办?{ "aa", "*", "ab", "+", "ac", "/", "ad", "-", "ae", "=", "af", ";", "ag" }
有一种简单的方法吗?
答案 0 :(得分:6)
您可以使用 Regex
var input = "aa*ab+ac/ad-ae=af;ag";
var parts = Regex.Matches(input, @"[;\*\+/=-]|[^;\*\+/=-]+")
.Cast<Match>()
.Select(m => m.Value)
.ToList();
答案 1 :(得分:3)
有人要求正则表达式吗? : - )
string[] parts = Regex.Split("aa*ab+ac/ad-ae=af;ag", "(?=[;*+/-])|(?<=[;*+/-])");
在这里,我使用正向前瞻/后视来将字符串“围绕”标志分开。