如何使用分隔符拆分字符串,分隔符可以相邻重复而不会出现空部分?

How to split a string with a delimiter that can be repeated adjacent without getting empty parts?

当分隔符可以彼此相邻并且第一个分隔符应该是字符串的一部分时,如何使用分隔符拆分字符串?

例如:

ABC::XYZ:QUI

拆分应该是:

1) ABC:
2) XYZ
3) QUI

Split(':') 无效。

您可以拆分正则表达式模式 :(?!:):

string input = "ABC::XYZ:QUI";
string[] parts = Regex.Split(input, @":(?!:)");
foreach (string part in parts)
{
    Console.WriteLine(part);
}

这会打印:

ABC:
XYZ
QUI

此处的正则表达式使用负前瞻来确保我们仅在 : 上 split/consume 后跟另一个 :.