Лучший подход немного зависит от того, насколько гибким вы хотите быть при разборе, с учетом возможных дополнительных пробелов и тому подобного. Проверьте точные спецификации формата, чтобы увидеть, что вам нужно.
yourString.Split(new char[] { ':' }, 2)
Ограничит вас двумя 2 подстроками. Однако это не обрезает пространство в начале второй строки. Вы можете сделать это во второй операции после разделения.
yourString.Split(new char[] { ':', ' ' }, 2,
StringSplitOptions.RemoveEmptyEntries)
Должно работать, но сломается, если вы попытаетесь разделить имя заголовка, которое содержит пробел.
yourString.Split(new string[] { ": " }, 2,
StringSplitOptions.None);
Будет делать именно то, что вы описываете, но на самом деле требуется место для присутствия.
yourString.Split(new string[] { ": ", ":" }, 2,
StringSplitOptions.None);
Делает пробел необязательным, но вам все равно придется TrimStart()
в случае более чем одного пробела.
Чтобы сделать формат несколько гибким и ваш код читабельным, я предлагаю использовать первый вариант:
string[] split = yourString.Split(new char[] { ':' }, 2);
// Optionally check split.Length here
split[1] = split[1].TrimStart();