using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^ # начало строки
(?:
([a-z]) | # 1 гр
([A-Z]) | # 2 гр
([0-9]) # 3 гр
)
(?(1) # если совпала 1 гр
[a-z]*+ # захватываем все символы как в 1 гр
(?:
([A-Z]) | # 4 гр
([0-9]) # 5 гр
)
(?(4) # если совпала 4 гр
[a-zA-Z]*+ # захватываем все символы как в 1 и 4 гр
[0-9]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 4 гр
(?(5) # если совпала 5 гр
[a-z0-9]*+ #захватываем все символы как в 1 и 5 гр
[A-Z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 5 гр
(?!) # роняем матчинг
) # конец если совпала 5 гр
) # конец если совпала 4 гр
) # конец если совпала 1 гр
(?(2) # если совпала 2 гр
[A-Z]*+ # захватываем все символы как в 2 гр
(?:
([a-z]) | # 6 гр
([0-9]) # 7 гр
)
(?(6) # если совпала 6 гр
[a-zA-Z]*+ # захватываем все символы как в 2 и 6 гр
[0-9]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 6 гр
(?(7) # если совпала 7 гр
[A-Z0-9]*+ #захватываем все символы как в 2 и 7 гр
[a-z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 7 гр
(?!) # роняем матчинг
) # конец если совпала 7 гр
) # конец если совпала 6 гр
) # конец если совпала 2 гр
(?(3) # если совпала 3 гр
[0-9]*+ # захватываем все символы как в 3 гр
(?:
([A-Z]) | # 8 гр
([a-z]) # 9 гр
)
(?(8) # если совпала 8 гр
[0-9A-Z]*+ # захватываем все символы как в 3 и 8 гр
[a-z]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 8 гр
(?(9) # если совпала 9 гр
[0-9a-z]*+ #захватываем все символы как в 3 и 9 гр
[A-Z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 5 гр
(?!) # роняем матчинг
) # конец если совпала 5 гр
) # конец если совпала 8 гр
) # конец если совпала 3 гр";
string input = @"AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8";
RegexOptions options = RegexOptions.IgnorePatternWhitespace;
Match m = Regex.Match(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