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

Несохраняющие скобки в регулярках Python

Скобки ( ) выполняют две функции - группировка символов и функцию кармана. А что делать, если нужно сгруппировать, но в карман не класть? Для решения такой проблемы придуманы специальные несохраняющие скобки (?: ) - они группируют, но не кладут в карман.

Пример

В следующем примере первые скобки нам нужны для группировки, а вторые - для кармана. Однако, и те, и другие скобки сохраняют данные в карман:

txt = 'abab123' res = re.search('(ab)+([1-9]+)', txt)

В результате в наших карманах будет следующее:

print(res[0]) # выведет 'abab123' print(res[1]) # выведет 'ab' print(res[2]) # выведет '123'

Пример

Сделаем так, чтобы первая пара скобок только группировала, но не клала в карман:

txt = 'abab123' res = re.search('(?:ab)+([1-9]+)', txt)

В результате в первом кармане будет наше число:

print(res[1]) # выведет '123'
Русский
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить