Общая информация 

Регулярные выражения (их еще называют regexp или regex) — это механизм для поиска и замены текста.

Для поиска используется строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской») состоящая из символов и метасимволов, и задающая правило поиска. Для манипуляций с текстом дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.

Регулярные выражения используются некоторыми текстовыми редакторами и утилитами для поиска и подстановки текста. Например, при помощи регулярных выражений можно задать шаблоны, позволяющие:

Регулярные выражения позволяют задавать и гораздо более сложные шаблоны поиска или замены.

Результатом работы с регулярным выражением может быть:

Если регулярное выражение используется для замены текста, то результатом работы будет новая текстовая строка, представляющая из себя исходный текст, из которого удалены найденные подстроки (сопоставленные образцу), а вместо них подставлены строки замены (возможно, модифицированные запомненными при разборе группами символов из исходного текста). Частным случаем модификации текста является удаление всех вхождений найденного образца — для чего строка замены указывается пустой.

Вспомогательные ссылки

1.              Статья «Основы Regex» - https://habr.com/ru/articles/545150/

2.              Сервис №1 для проверки регулярных выражений - https://regex101.com/

3.              Сервис №2 для проверки регулярных выражений - https://regexr.com/ 

4.              Банк регулярных выражений - https://regex101.com/library

5.              Примеры регулярных выражений -https://support.google.com/a/answer/1371417?hl=en 

6.              Банк готовых выражений - https://regexlib.com/. Лучше использовать протестированное выражение для сложных и типовых запросов типа имейла, который практически невозможно написать вручную

7.              Справочник по элементам регулярных выражений  - https://docs.microsoft.com/ru-ru/dotnet/standard/base-types/regular-expression-language-quick-reference

8.              Еще один справочник по regexhttp://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/ 

9.              Форматы для работы с датами (группа действий «Конвертация дат» в Studio) – https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

10.           Шаблоны для работы с файловой системой (группа действий «Файловая система» в Studio) -  https://en.wikipedia.org/wiki/Glob_(programming)

Примеры регулярных выражений

 1. Взять текст между заданным текстом -  (?<=start_text\s).+(?=\b\s+finish_text) , где start_text, finish_text - тексты, между   которыми надо взять текст

2.  Взять текст между заданным текстом - (?s)(?<=start_text).+?(?=finish_text), где  start_text, finish_text - тексты, между которыми надо взять текст

3.  Взять текст с заданным текстом - start_text\s+.+\s+finish_text , где start_text - текст, с которого надо взять текст и finish_text - текст, по который надо взять текст

4. Извлечь из текста год [2][0][0-2][0-9], регулярное выражение позволяет извлечь из текста четырехзначное число, у которого разряд тысяч = 2, разряд сотен = 0, разряд десятков = 0-2, разряд единиц 0-9.

5.  Извлечь из текста последовательность цифр \d{n}, где n - количество цифр в последовательности

6.  Извлечь из текста последовательность из произвольного количества чисел (\d+) 

7.  Проверить язык символов в строке [\P{Cyrillic}]. Регулярное выражение проверяет все символы строки на соответствие кириллице.

8.  Извлечение только числа из данных ячейки, где содержался текст и числовое значение, самый простой [0-9]+

9.   Извлечь из текста адрес почты (\S*@\S*\.\w+?\b) 

10. Избавление от многострочного текста ^\S.* 

11. Извлечь ФИО из текста в формате И.О. Фамилия (?<=)[А-ЯЁ](\.|_|)[А-ЯЁ](\.|_|)(\s|)[А-ЯЁ{1}][а-яё]













Часто используемые:

1.  Взять текст между заданным текстом

(?s)(?<=start_text).+?(?=finish_text)

, где  start_text, finish_text - тексты, между которыми надо взять текст

2. Извлечь из текста год

[2][0][1-2][0-9]

Регулярное выражение позволяет извлечь из текста четырехзначное число, у которого разряд тысяч = 2, разряд сотен = 0, разряд десятков = 1 или 2, разряд единиц 0 или 9.

3. Извлечь из текста адрес почты.

(\S*@\S*\.\w+?\b)

4. Извлечь из текста последовательность из произвольного количества чисел.

(\d+)