alexgman
4/7/2017 - 5:51 PM

frmMain.cs


            // Hyperlinks e.g. http://www.server.com/folder/file.aspx
            Regex rxURL = new Regex(@"(\b(?:http|https|ftp|file)://[^\s]+)", RegexOptions.IgnoreCase);
			rxURL.Match(strClipboardText);

			foreach (Match rm in rxURL.Matches(strClipboardText))
			{
				if(!_hyperlink.Contains(rm.ToString()))
				{
					_hyperlink.Enqueue(rm.ToString());
					FoundNewLinks = true;
				}
			}

			// Files and folders - \\servername\foldername\
			// TODO needs work
			Regex rxFile = new Regex(@"(\b\w:\\[^ ]*)", RegexOptions.IgnoreCase);
			rxFile.Match(strClipboardText);

			foreach (Match rm in rxFile.Matches(strClipboardText))
			{
				if(!_hyperlink.Contains(rm.ToString()))
				{
					_hyperlink.Enqueue(rm.ToString());
					FoundNewLinks = true;
				}
			}

			// UNC Files 
			// TODO needs work
			Regex rxUNC = new Regex(@"(\\\\[^\s/:\*\?\" + "\"" + @"\<\>\|]+)", RegexOptions.IgnoreCase);
			rxUNC.Match(strClipboardText);

			foreach (Match rm in rxUNC.Matches(strClipboardText))
			{
				if(!_hyperlink.Contains(rm.ToString()))
				{
					_hyperlink.Enqueue(rm.ToString());
					FoundNewLinks = true;
				}
			}

			// UNC folders
			// TODO needs work
			Regex rxUNCFolder = new Regex(@"(\\\\[^\s/:\*\?\" + "\"" + @"\<\>\|]+\\)", RegexOptions.IgnoreCase);
			rxUNCFolder.Match(strClipboardText);

			foreach (Match rm in rxUNCFolder.Matches(strClipboardText))
			{
				if(!_hyperlink.Contains(rm.ToString()))
				{
					_hyperlink.Enqueue(rm.ToString());
					FoundNewLinks = true;
				}
			}

			// Email Addresses
			Regex rxEmailAddress = new Regex(@"([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)", RegexOptions.IgnoreCase);
			rxEmailAddress.Match(strClipboardText);

			foreach (Match rm in rxEmailAddress.Matches(strClipboardText))
			{
				if(!_hyperlink.Contains(rm.ToString()))
				{
					_hyperlink.Enqueue("mailto:" + rm.ToString());
					FoundNewLinks = true;
				}
			}