Nie-bewarende hakies in Python gereelde uitdrukkings

Hakies ( ) vervul twee funksies - groepering van simbole en die funksie van 'n sakkie. Maar wat om te doen as jy moet groepeer, maar nie in die sakkie wil plaas nie? Vir die oplossing van so 'n probleem is spesiale nie-bewarende hakies (?: ) bedink - hulle groepeer, maar plaas nie in die sakkie nie.

Voorbeeld

In die volgende voorbeeld het ons die eerste hakies nodig vir groepering, en die tweede - vir 'n sakkie. Tog plaas albei hakies data in die sakkie:

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

As gevolg sal die volgende in ons sakkies wees:

pythonprint(res[0]) # sal 'abab123' uitvoer
print(res[1]) # sal 'ab' uitvoer
print(res[2]) # sal '123' uitvoer

Voorbeeld

Laat ons maak dat die eerste paar hakies slegs groepeer, maar nie in die sakkie plaas nie:

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

As gevolg sal ons getal in die eerste sakkie wees:

pythonprint(res[1]) # sal '123' uitvoer