Пример #1
0
        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&param=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);
                }
            }
        }
Пример #2
0
        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());
        }