Вы можете использовать Split(Char[], Int32)
, чтобы получить необходимое количество элементов (3: первая нежелательная часть, первая ожидаемая часть и оставшаяся) вместе с Skip()
для удаления ненужного:
string url = "test:app:https://test@hotmail.co.uk:Test";
var splitted = url.Split(new [] { ':' }, 3).Skip(1).ToArray();
var first = splitted[0];
var second = splitted[1];
Console.WriteLine(first);
Console.WriteLine(second);
Это выводит
app
https://test@hotmail.co.uk:Test
Другой способ сделать это - использовать регулярные выражения:
Шаблон :(?<first>.*?):(?<second>.*)
будет:
:
искать символы :
(?<first>.*?)
создает группу с именем first , которая будет соответствовать любому номер любого символа (ленивый) :
поиск символов :
(?<second>.*)
создает группу с именем second , которая будет соответствовать любому числу любого символ (жадный)
Например:
string url = "test:app:https://test@hotmail.co.uk:Test";
var pattern = ":(?<first>.*?):(?<second>.*)";
var regex = new Regex(pattern); // using System.Text.RegularExpressions;
Match match = regex.Match(url);
if (match.Success)
{
var first = match.Groups["first"].Value;
var second = match.Groups["second"].Value;
Console.WriteLine(first);
Console.WriteLine(second);
}
Это выводит
app
https://test@hotmail.co.uk:Test