# Метод subn модуля re

Метод `subn` модуля `re` осуществляет поиск и замену частей строки. При этом метод возвращает кортеж из новой строки и количества сделанных в ней замен. Первым параметром принимается регулярное выражение, а вторым - подстрока, на которую заменяем. В третьем параметре указываем строку, в которой нужно сделать замену. В четвертом необязательном параметре задаем количество замен. В пятом необязательном параметре указываем флаги для дополнительных настроек регулярных выражений.

## Синтаксис

`import re re.subn(регулярка, замена, строка, [кол-во замен], [флаги])`

## Пример

Давайте найдем и заменим символ `'a'`:

`txt = 'bab' res = re.subn('a', '!', txt) print(res)`

Результат выполнения кода:

`('b!b', 1)`

## Пример

По умолчанию заменяются все найденные совпадения. Давайте снова заменим символ `'a'` в строке:

`txt = 'baaab' res = re.subn('a', '!', txt) print(res)`

Результат выполнения кода:

`('b!!!b', 3)`

## Пример

А теперь давайте сделаем в строке только две замены:

`txt = 'baaab' res = re.subn('a', '!', txt, 2) print(res)`

Результат выполнения кода:

`('b!!ab', 2)`

## Смотрите также

- метод `sub` модуля `re`,
  который осуществляет поиск и замену частей строки
- метод `findall` модуля `re`,
  который возвращает список из всех совпадений в строке
- метод `finditer` модуля `re`,
  который возвращает итератор всех совпадений с регуляркой в строке
- метод `search` модуля `re`,
  который ищет первое совпадение с регуляркой в строке
- метод `match` модуля `re`,
  который ищет совпадение с регуляркой в начале строки
- метод `fullmatch` модуля `re`,
  который ищет все совпадения с регуляркой в строке

← →
↑