如何使用分隔符拆分字符串,分隔符可以相邻重复而不会出现空部分?
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 后跟另一个 :
.
当分隔符可以彼此相邻并且第一个分隔符应该是字符串的一部分时,如何使用分隔符拆分字符串?
例如:
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 后跟另一个 :
.