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:

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

Kama matokeo, katika mifuko yetu kutakuwa na yafuatayo:

pythonprint(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:

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

Kama matokeo, kwenye mfuko wa kwanza kutakuwa na namba yetu:

pythonprint(res[1]) # itatoa '123'