Регулярные выражения (их еще называют 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. Еще один справочник по regex: http://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)
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+)