Эта статья сейчас заблокирована от изменений.


  # Регулярные выражения

Хорошая статья на 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 в настройках)