НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗pyPmREMSP 58 of 129 menu

Карманы в строке замены в Python

При работе с методом sub, если что-то нужно положить в карман в регулярке, то в строке замены можно вставить содержимое этого кармана написав двойной слеш \ и номер кармана. Например, \1 - первый карман, \2 - второй карман и так далее.

Зачем это нужно и как этим пользоваться давайте посмотрим на примерах.

Пример

Давайте найдем все числа и вместо них вставим эти же числа, но в круглых скобках. Для этого все найденные числа заменим на них самих же, но в скобках:

txt = '1 23 456 xax' res = re.sub('(\d+)', '(\1)', txt) print(res)

В результате в переменную запишется следующее:

'(1) (23) (456) xax'

Пример

Давайте найдем все строки, представляющие собой числа с иксами вокруг и заменим эти числа на них же, но с '!' знаками вокруг:

txt = 'x1x x23x x456x xax' res = re.sub('x(\d+)x', '!\1!', txt) print(res)

В результате в переменную запишется следующее:

'!1! !23! !456! xax'

Пример

Давайте решим следующую задачу: дана строка 'aaa@bbb ccc@ddd' - буквы, потом собака, потом буквы. Нужно поменять местами буквы в подстроке 'aaa@bbb' до '@' и после:

txt = 'aaa@bbb ccc@ddd' res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt) print(res)

В результате в переменную запишется следующее:

'bbb@aaa ccc@ddd'

Практические задачи

Дана строка:

txt = '12 34 56 78'

Поменяйте местами цифры во всех двухзначных числах.

Дана строка с датой:

txt = '31.12.2025'

Преобразуйте эту дату в '2025.12.31'.

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить