Source: Основы регулярных выражений

← Rendered

markdown source:

---
description: Regex основы
tags: templating
title: Основы регулярных выражений
---

`.` - заменяет любой знак

`[...]` - множество. `[1-6]` эквивалент `[123456]`. Может содержать несколько диапазонов, например `[A-F1-9]`

Есть несколько сокращений:

- `\d` эквивалент `[0-9]`
- `\w` эквивалент `[A-Za-z0-9_]`

`[^...]` - НЕ множество. `[^x]` - все кроме x.

Спец.символы:

- `\t` вкладка
- `\n` новая строка
- `\r` возврат каретки
- `\f` разрыв страницы
- `\s` эквивалент `[\t\r\n\f]`

Квантификаторы устанавливают кол-во символов:

- `{n}` точно n раз
- `{n,m}` не менее n и не более m
- `{n,}` не менее n

Пример: `\d{3}-\d{0,3}-\d{2}`

Символ `?` является аналогом квантификатора `{0,1}` - один или ни одного символ. Например так `https?://` ищет https или http

Символ `+` аналог `{1,}` и ищет последовательности, встречающиеся не менее 1 раза. Например `http?://[a-z0-9-]+\.com` найдет все ссылки с доменом .com

Символ `*` эквивалентен `{0,}` и ищет последовательность. которая встречается 0 и более раз. `.*` соответствует чему угодно. К примеру так можно найти любую цитату в кавычках: `".*"`. Данный поиск жадный (как и все с квантификаторами) - он извлечет все между самой первой кавычкой и самой последней.

Символы привязки:

- `^` (за пределами скобок) - обозначает поиск совпадения в начале строки. Пример `^-*` найдет разделитель `----`
- `$` привязка к концу строки. Пример `^-*$` найдет разделитель, который начинается и звершается дефисом. `^*$` так можно найти пустую строку - по этой причине в ЯП не привествуется завершение строк кода пробелами.
- `\b` привязывает к началу или к концу слова. Пример `\ba[a-z]*s\b `найдет все слова начинающиеся с a и завершающиеся s

Группы:

- `(...)` позволет работать с последовательностью символов или целым выражением. Пример `\b\d{1,3}(,\d{3})*(\.\d+)?\b` находит любые числа состоящие из трех цифр в начале слова , запятой или точки за которой могут идти три цифры или точка за которой идет хотя бы одна цифра и на этом словао завершается.

Чередование:

- `|` позволяет найти соответвствие одному из выражений. Пример `(123|456)-d{3}`

Смотри еще:

- [[regex-examples]]
- [[шаблонизаторы]]





[regex-examples]: regex-examples "Примеры использования модуля re в python"
[шаблонизаторы]: ../lists/%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D1%8B "Шаблонизаторы"