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:
txt = 'abab123'
res = re.search('(ab)+([1-9]+)', txt)
As gevolg sal die volgende in ons sakkies wees:
print(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:
txt = 'abab123'
res = re.search('(?:ab)+([1-9]+)', txt)
As gevolg sal ons getal in die eerste sakkie wees:
print(res[1]) # sal '123' uitvoer