История страницы
General information
Regular expressions (also called regexp or regex) are a mechanism for finding and replacing text.
The search uses a pattern consisting of characters and metacharacters and specifies the search rule. For text manipulation, a replacement string is additionally defined, which may also contain special characters.
Regular expressions are used by some text editors and utilities to find and substitute text. For example, regular expressions can be used to specify patterns that allow:
- Find all occurrences of the sequence of characters "cat" in any context, such as: "cat", "catalog", "caterpillar".
- Find the standalone word "cat" and replace it with "kitten".
- Find the word "cat" preceded by the word "Persian" or "Cheshire".
- Remove all sentences from the text that mention the word "cat" or "kitten".
Regular expressions also allow you to specify much more complex search or replacement patterns.
The result of working with a regular expression can be:
- checking for the presence of the desired pattern in the given text;
- determining the substring of the text which is matched to the pattern;
- identifying groups of characters corresponding to separate parts of the pattern.
If a regular expression is used to replace text, the result will be a new text string representing the source text, from which the found substrings (matched to the pattern) have been removed, and the replacement strings (possibly modified by the character groups remembered during parsing from the source text) have been substituted instead. A special case of text modification is deletion of all occurrences of the found pattern, for which the replacement string is specified empty.
Helpful links
1. Regex Basics article
Общая информация
Регулярные выражения (их еще называют regexp или regex) — это механизм для поиска и замены текста.
Для поиска используется строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской») состоящая из символов и метасимволов, и задающая правило поиска. Для манипуляций с текстом дополнительно задаётся строка замены, которая также может содержать в себе специальные символы.
Регулярные выражения используются некоторыми текстовыми редакторами и утилитами для поиска и подстановки текста. Например, при помощи регулярных выражений можно задать шаблоны, позволяющие:
- найти все вхождения последовательности символов «кот» в любом контексте, как: «кот», «котлета», «терракотовый»;
- найти отдельно стоящее слово «кот» и заменить его на «кошка»;
- найти слово «кот», которому предшествует слово «персидский» или «чеширский»;
- убрать из текста все предложения, в которых упоминается слово кот или кошка.
Регулярные выражения позволяют задавать и гораздо более сложные шаблоны поиска или замены.
Результатом работы с регулярным выражением может быть:
- проверка наличия искомого образца в заданном тексте;
- определение подстроки текста, которая сопоставляется образцу;
- определение групп символов, соответствующих отдельным частям образца.
Если регулярное выражение используется для замены текста, то результатом работы будет новая текстовая строка, представляющая из себя исходный текст, из которого удалены найденные подстроки (сопоставленные образцу), а вместо них подставлены строки замены (возможно, модифицированные запомненными при разборе группами символов из исходного текста). Частным случаем модификации текста является удаление всех вхождений найденного образца — для чего строка замены указывается пустой.
Вспомогательные ссылки
1. Статья «Основы Regex» - https://habr.com/ru/articles/545150/
2. Сервис №1 для проверки регулярных выражений Service No. 1 for checking regular expressions - https://regex101.com/
3. Сервис №2 для проверки регулярных выражений - . Service No. 2 for checking regular expressions - https://regexr.com/
4. Банк регулярных выражений Regular expression bank - https://regex101.com/library
5. Примеры регулярных выражений Examples of regular expressions -https://support.google.com/a/answer/1371417?hl=en
6. Банк готовых выражений Bank of ready expressions - https://regexlib.com/. Лучше использовать протестированное выражение для сложных и типовых запросов типа имейла, который практически невозможно написать вручнуюIt is better to use the tested expression for complex and typical requests like email, which is almost impossible to write manually
7. Guide to regular expression elements 7. Справочник по элементам регулярных выражений - https://docs.microsoft.com/ru-ru/dotnet/standard/base-types/regular-expression-language-quick-reference
8. Еще один справочник по regex:Another guide to regex - http://website-lab.ru/article/regexp/shpargalka_po_regulyarnyim_vyirajeniyam/
9. Форматы для работы с датами (группа действий «Конвертация дат» в Studio) – Formats for working with dates (action group “Date conversion” in Studio) – https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
10. Шаблоны для работы с файловой системой (группа действий «Файловая система» в Studio) Templates for working with the file system (File system action group in Studio) - https://en.wikipedia.org/wiki/Glob_(programming)
Примеры регулярных выражений
...
Examples of regular expressions
1. Take the text between a given text - (?<=start_text\s).+(?=\b\s+finish_text)
...
where start_text, finish_text
...
are the texts between which to take the text
2. Take the text between a given text - 2. Взять текст между заданным текстом - (?s)(?<=start_text).+?(?=finish_text), где where start_text, finish_text - тексты, между которыми надо взять текст3. Взять текст с заданным текстом - are the texts between which to take the text
3. Take the text with the given text - start_text\s+.+\s+finish_text , где where start_text - текст, с которого надо взять текст и finish_text - текст, по который надо взять текстtext is the text to take the text from and finish_text is the text to take the text to
4. Extract the year from the text - 4. Извлечь из текста год [2][0][0-2][0-9] , регулярное выражение позволяет извлечь из текста четырехзначное число, у которого разряд тысяч = 2, разряд сотен = 0, разряд десятков regular expression allows you to extract from the text a four-digit number with thousands digit = 2, hundreds digit = 0, tens digit = 0-2, разряд единиц units digit 0-9.
5. Извлечь из текста последовательность цифр Extract a sequence of numbers from the text \d{n} , где n - количество цифр в последовательности where n is the number of digits in the sequence
6. Extract a sequence of arbitrary numbers from the text 6. Извлечь из текста последовательность из произвольного количества чисел (\d+)
7. Проверить язык символов в строке [\P{Cyrillic}]. Регулярное выражение проверяет все символы строки на соответствие кириллице.8. Извлечение только числа из данных ячейки, где содержался текст и числовое значение, самый простой Extracting only the number from the cell data that contained the text and the numeric value is the simplest one [0-9]+
98. Извлечь из текста адрес почты Extract the mail address from the text (\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+)9. Getting rid of multi-line text ^\S.*