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'