Source: Основы регулярных выражений
← Renderedmarkdown 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 "Шаблонизаторы"