using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?(DEFINE)
(?<WebAddress> (?&Protocol){0,}(?&Host)(?:\:(?&Port)){0,1}(?&Path){0,1})(?=\s|$)
(?<Protocol> \w{2,}\:\/\/)
(?<Host> (?&NameParts)(?&Suffix))
(?<NameParts> (\w{2,}\.){1,})
(?<Suffix> (\w{2,}))
(?<Port> (\d{1,5}))
(?<Path> (\/\S{1,}))
)
((?&WebAddress))";
string input = @"http://asdf.com
http://www.google.com:80/path?asdf-asdf=adsfddk@ffs
http://asdf.com
https://adfdfffdfds.edu
asd.edu:8383
jjhgf.net:21
https://uno.mbsc.asdf.com:1233
google.com
mbsc.unomaha.edu
ftp.unomaha.edu
asdf.com
ftp.dd.dfffffdfdfdfdfdfdfdfdfdfdf
sdf.com
abc.def.com
https://msn.sdf.com:123
http://asd.com
ftp://ftp.mbsc.unomaha.edu:81813
http://www.mbsc.unomaha.edu
https://www.mbsc.unomaha.edu:1231/path?docid=-123
weather.tv
www.google.com
google.com/asdf?coxd
";
RegexOptions options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx