В предисловии я знаю, что есть похожие темы по этому поводу, но я использую C #, а не java, или python, или Php. Некоторые потоки предоставляют решение для одного URL-адреса, что не является универсальным. Спасибо, что не отметили меня.
Поэтому я использую Google Alerts, чтобы получать ссылки на статьи по электронной почте. Я уже написал программу, которая может удалять URL-адреса из электронной почты, а также другую программу для очистки веб-сайтов. Моя проблема в том, что ссылки в электронном письме с оповещениями Google выглядят так:
Поскольку это перенаправляет на реальную статью через Google, моя программа очистки не работает с этими ссылками. Я пробовал миллион различных регулярных выражений из вопросов здесь и из других источников. Мне удалось удалить все до http:// самой статьи, но у нее все еще есть хвост, который все портит. Вот что у меня есть до сих пор. Теперь они выглядят так:
private List<string> GetLinks(string message)
{
List<string> list = new List<string>();
Regex urlRx = new Regex(@"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)", RegexOptions.IgnoreCase);
MatchCollection matches = urlRx.Matches(message);
foreach (Match match in matches)
{
if(!match.ToString().Contains("news.google.com/news") && !match.ToString().Contains("google.com/alerts"))
{
string find = "=http";
int ind = match.ToString().IndexOf(find);
list.Add(match.ToString().Substring(ind+1));
}
}
return list;
}
Некоторая помощь в избавлении от окончаний была бы потрясающей, будь то новое регулярное выражение или дополнительный код. Заранее спасибо.