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

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