11.05 Регулярные выражения
https://github.com/ziishaned/learn-regex/blob/master/translations/README-ru.md с изрядными сокращениями, потому что это было на лекциях
Простые упражнения (целое число, время, дата)
Задача_1: распознаватель вещественных чисел в обеих формах (обычной десятичной и научной)
- напишите регулярное выражение, которое распознаёт, является ли заданная строка вещественным числом, записанным в десятичной или научной (экспоненциальной) форме
- десятичная форма: содержит знак (опционально), целую часть (опционально), точку (если есть дробная часть), дробную часть (опционально). Обязательно должна быть хотя бы одна из частей (целая, дробная). Примеры: +1.0, -0.0, 1.567, +500, .5, 1
- научная форма: содержит мантиссу и экспоненциальную часть. Мантисса это вещественное число в десятичной форме. Экспонента содержит букву "E" (или "e"), знак (опционально), беззнаковое целое число. Примеры: +1.112E-100, 15.3E+0, -.234E-1, 0.0e+10, 5E+100, 1.5e100
- Поиск с заменой
Простые упражнения типа переставить местами слова
Задача_2: несложная обработка текста
- при помощи регулярных выражений поменяйте местами в заданной строке первую и вторую гласную букву (гласными считаются буквы a,e,i,o,u,y)
- если гласных букв меньше двух, не изменять строку
пример: "elastic" -> "alestic"
- нерегулярные выражения — lookahead, lookbehind, нежадные повторители
Хоть какие-нибудь разумные примеры ИРЛ
Задача_3: нежадные повторители и lookahead/lookbehind (поэтому слово "регулярные" -- в кавычках)
- задана строка из десятичных цифр
- при помощи "регулярных" выражений, поменяйте в этой строке местами первое и второе вхождение последовательности из от двух до четырех ненулевых цифр, слева и справа ограниченной нулями. Если вхождений меньше двух, не изменять строку
пример: "123011220567067800" -> "123056701122067800" (поменяли местами 1122 и 567
пример: "0123450006703330" -> "0123450003330670" (поменяли местами 67 и 333)