public static void Main() { // TryMatch() can get a single match if (IsoDate.TryMatch("2021-02-03T01:23:45.678Z", out var isoDate)) { Console.WriteLine($"IsoDate: year={isoDate.Year} month={isoDate.Month} day={isoDate.Day}"); } // IsMatch() allows simple validity checks var testUsernames = new[] { "foo-bar", "foobar", "3foobar", "foo-bar-", "-foo-bar", "foo--bar" }; foreach (var username in testUsernames) { Console.WriteLine($"GithubUsername: {username}: {GithubUsername.IsMatch(username)}"); } // Matches() allows iterating through several matches var sourceText = "This is some example text showing URL matching, for https://example.org. " + "It will match with IPs http://192.0.2.1 or ftp://some.site.example.org and" + "also long ones https://user:[email protected]:4433/some/path?query=abc¶m=234."; foreach (var url in UrlRegex.Matches(sourceText)) { Console.WriteLine($"Found URL, scheme = {url.Scheme}, fullhost = {url.Fullhost}"); foreach (var path in url.Path) { Console.WriteLine(" " + path); } } }
public override List <ExtractResult> Extract(string text) { var ret = base.Extract(text); var urlMatches = UrlRegex.Matches(text); foreach (Match urlMatch in urlMatches) { var tldString = urlMatch.Groups["Tld"].Value; var tldMatches = TldMatcher.Find(tldString); if (tldMatches.Any(o => o.Start == 0 && o.End == tldString.Length)) { ret.Add(new ExtractResult { Start = urlMatch.Index, Length = urlMatch.Length, Text = urlMatch.Value, Type = ExtractType, Data = Constants.URL_REGEX }); } } return(ret); }
private static IEnumerable <string> GetUrlsInMessage(string messages) { var matches = UrlRegex.Matches(messages); return(from object match in matches select match.ToString()); }