Mabano yasiyohifadhi katika usimbaji fupi wa Python
Mabano ( ) yanafanya kazi mbili -
kuweka herufi pamoja na kazi ya mfuko. Lakini
je, nini kufanya ikiwa unahitaji kuweka pamoja, lakini
usiiweke kwenye mfuko? Ili kutatua tatizo kama hilo
zimeundwa mabano maalum yasiyohifadhi (?: ) - yanayoweka pamoja,
lakini hayaiweki kwenye mfuko.
Mfano
Katika mfano ufuatao, mabano ya kwanza yanahitajika kwa kuweka pamoja, na ya pili - kwa mfuko. Hata hivyo, mabano yote mawili yanahifadhi data kwenye mfuko:
txt = 'abab123'
res = re.search('(ab)+([1-9]+)', txt)
Kama matokeo, katika mifuko yetu kutakuwa na yafuatayo:
print(res[0]) # itatoa 'abab123'
print(res[1]) # itatoa 'ab'
print(res[2]) # itatoa '123'
Mfano
Wacha tufanye ili jozi ya kwanza ya mabano iweke pamoja tu, lakini isiiweke kwenye mfuko:
txt = 'abab123'
res = re.search('(?:ab)+([1-9]+)', txt)
Kama matokeo, kwenye mfuko wa kwanza kutakuwa na namba yetu:
print(res[1]) # itatoa '123'