Sebagai pengantar, saya tahu ada topik serupa tentang ini, tapi saya menggunakan C#, bukan Java, atau python, atau Php. Beberapa rangkaian pesan memberikan solusi untuk satu URL, yang tidak bersifat universal. Terima kasih karena tidak menandai saya.
Jadi saya menggunakan Google Alerts untuk mendapatkan link ke artikel melalui email. Saya telah menulis sebuah program yang dapat menghapus URL dari email serta program lain untuk mengikis situs web. Masalah saya adalah tautan di email Google Alerts terlihat seperti ini:
Karena ini mengalihkan ke artikel sebenarnya melalui Google, program pengikisan saya tidak berfungsi pada tautan ini. Saya telah mencoba jutaan RegEx berbeda dari pertanyaan di sini dan sumber lain. Saya berhasil menghapus semuanya hingga http:// artikel sebenarnya tetapi masih ada ujung yang mengacaukannya. Inilah yang saya miliki sejauh ini. Mereka sekarang terlihat seperti:
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;
}
Beberapa bantuan untuk menghilangkan bagian akhir akan sangat membantu, baik itu RegEx baru atau kode tambahan. Terima kasih sebelumnya.