Bob103

C#_Regex_№4

Apr 10th, 2017
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.64 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4.  
  5.  class Program
  6.     {
  7.         static void Main()
  8.         {
  9.                         [email protected] [email protected] [email protected]";
  10.             var pattern = @"
  11.            (?<n>                   # группа n
  12.                (?![.\-])           # не может начинаться с тире или точки
  13.                [a-zA-Z0-9.]{4,}   # может содержать буквы, цифры, точки, тире, больше 3 штук
  14.                (?<![.\-])          # не может заканчиваться тире или точкой
  15.            )
  16.            @                       # собачка между n и s
  17.            (?<s>                   # группа s
  18.                [a-zA-Z]{4,7}       # только буквы больше 3 меньше 8
  19.            )
  20.            \.                      # точка между s и d
  21.            (?<d>                   # группа d
  22.                [a-zA-Z]{2,3}       # только буквы от 2 до 3 символов
  23.            )";
  24.  
  25.             var mails = Regex.Matches(message, pattern, RegexOptions.IgnorePatternWhitespace)
  26.                 .Cast<Match>()
  27.                 .OrderBy(match => match.Groups["n"].Length)
  28.                 .ThenBy(match => match.Groups["s"].Length)
  29.                 .ThenBy(match => match.Groups["d"].Length)
  30.                 .Select(match => match.Value)
  31.                 .ToArray();
  32.  
  33.             Console.WriteLine(string.Join("\r\n", mails));
  34.         }
  35.     }
Advertisement
Add Comment
Please, Sign In to add comment