using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace TEST
{
class Program
{
static void Main(string[] args)
{
string[] urls = {
"http://www.google.com",
"http://m...content-available-to-author-only...t.us",
"www.amazon.com",
"tinyurl.com",
"itsaTrap!",
"http://o...content-available-to-author-only...k.com/just/to/bee/sure",
"http://t...content-available-to-author-only...k.com/Done",
"http://brokenurl.s2",
"This line isnt proper url",
"try.to.fake.ur/rsa.r2",
"myshort.link/page.html?param1=das",
"link.com/?#",
"this.is/dot/net/link/alike?param=1&something=2",
"this.is/To/ControllerName/ActionTodDo?gimmeNumber=5",
"this.is/To/ControllerName/ActionTodDo.fakePHP?gimmeNumber=5"};
Console.WriteLine("Start");
foreach(string s in urls)
Console.WriteLine("["+s+"]");
Console.WriteLine("=================\n\n\n\n");
string[] urls2 = urls
.Select(s => Regex.Match(s, @"(http://){0,1}[a-z0-9\-\.]{1,}\.[a-z]{2,5}", RegexOptions.IgnoreCase).ToString())
.Where(s => !string.IsNullOrEmpty(s))
.ToArray();
foreach (string s in urls2)
Console.WriteLine("[" + s + "] ");
Console.WriteLine("=================\n\n\n\n");
Console.ReadKey();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpuYW1lc3BhY2UgVEVTVAp7CiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nW10gdXJscyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy5nb29nbGUuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL20uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnQudXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3d3cuYW1hem9uLmNvbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbnl1cmwuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRzYVRyYXAhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL28uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmsuY29tL2p1c3QvdG8vYmVlL3N1cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vdC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uay5jb20vRG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9icm9rZW51cmwuczIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIGxpbmUgaXNudCBwcm9wZXIgdXJsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ5LnRvLmZha2UudXIvcnNhLnIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXlzaG9ydC5saW5rL3BhZ2UuaHRtbD9wYXJhbTE9ZGFzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGluay5jb20vPyMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGlzLmlzL2RvdC9uZXQvbGluay9hbGlrZT9wYXJhbT0xJnNvbWV0aGluZz0yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhpcy5pcy9Uby9Db250cm9sbGVyTmFtZS9BY3Rpb25Ub2REbz9naW1tZU51bWJlcj01IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhpcy5pcy9Uby9Db250cm9sbGVyTmFtZS9BY3Rpb25Ub2REby5mYWtlUEhQP2dpbW1lTnVtYmVyPTUifTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlN0YXJ0Iik7CiAgICAgICAgICAgIGZvcmVhY2goc3RyaW5nIHMgaW4gdXJscykKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJbIitzKyJdIik7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCI9PT09PT09PT09PT09PT09PVxuXG5cblxuIik7CiAgICAgICAgICAgIHN0cmluZ1tdIHVybHMyID0gdXJscwogICAgICAgICAgICAgICAgLlNlbGVjdChzID0+IFJlZ2V4Lk1hdGNoKHMsIEAiKGh0dHA6Ly8pezAsMX1bYS16MC05XC1cLl17MSx9XC5bYS16XXsyLDV9IiwgUmVnZXhPcHRpb25zLklnbm9yZUNhc2UpLlRvU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAuV2hlcmUocyA9PiAhc3RyaW5nLklzTnVsbE9yRW1wdHkocykpCiAgICAgICAgICAgICAgICAuVG9BcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgcyBpbiB1cmxzMikKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJbIiArIHMgKyAiXSAiKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIj09PT09PT09PT09PT09PT09XG5cblxuXG4iKTsKICAgICAgICAgICAgQ29uc29sZS5SZWFkS2V5KCk7CiAgICAgICAgfQogICAgfQp9Cg==