Эта статья сейчас заблокирована от изменений.
# Регулярные выражения
Хорошая статья на Habr`е: <https://habr.com/ru/articles/545150/>
## Символы
* `.` - любой символ
* `a` - символ буквы "a" (тоже и с другими буквами)
* `\n` - символ переноса строки
* `\t` - символ табуляции
* `\d` - все числа, тоже что и [0-9]
* `\D` - всё КРОМЕ чисел
* `\s` - все пробельные символы
* `\S` - всё кроме пробельных символов
* `\w` - все словестные символы (кириллица, латиница, числа, "_" и т.д.)
* `\W` - всё, кроме словестных символов
Служебные символы необходимо экранировать, например:
* `\.` - символ точки (.)
* `\\` - символ бэкслеша (\\)
и т.д.
## Количество символов
* `*` - 0 и более раз
* `+` - 1 и более раз
* `?` - 0 или 1 раз
* `{5}` - ровно 5 раз
* `{1,5}` - от 1 до 5 раз
* `{1,}` - от 1 раза
* `{,5}` - до 5 раз
#### *Например:*
- `a+` - символ "a" 1 или более раз;
- `.*` - любой символ 0 или более раз;
- `(Bob)?` - группа символов "Bob" 0 или 1 раз;
- `аб{3}` - "а" 1 раз и "б" 3 раза;
## Группы
`()` - позволяют использовать группы элементов или просто объединять несколько символов
>По умолчанию всё, что находится в круглых скобках попадает в группы (т.е. отображается в
>результате), чтобы этого избежать обычно используют не неиндексируемые группы: `(?: )`
>Например, `(?:https?|ftp)://([^/\r\n]+)(/[^\r\n]*)`
* `|` - знак логического ИЛИ
* `^` - символ начала строки;\n
* `$` - символ конца строки;
#### *Например:*
- `(Bob|Alice)` - "Bob" или "Alice";
- `^a.*c$` - начинается с символа "а" (`^a`)? заканчвается на символ "с" (`c$`)
## Наборы символов
* [а-я] - кириллица в нижнем регистре без "ё"
* [абвгд] - тоже что и [а-д]
* [а-zA-Z] - вся латиница
* [а-яА-яЁё] - вся кириллица
* [^а-zA-Z] - всё кроме латиницы
* [0-5] - все числа от 1 до 5
## Полезные материалы
- Регулярные выражения за 100 секунд (ENG) - https://www.youtube.com/watch?v=sXQxhojSdZM
- Сайт для проверки регулярных выражений онлайн - https://regexr.com/
- Еще один сайт для проверки регулярных выражений - https://regex101.com/ (выберите Python в настройках)