⊗pyPmRELAB 72 of 129 menu

Uchunguzi wa Mbele na Nyuma Chanya na Hasifi katika Usanifu wa Kawaida wa Python

Wakati mwingine unahitaji kutatua tatizo la aina hii: pata mfuatano 'aaa' na uibadilishe kuwa '!', lakini tu ikiwa baada ya 'aaa' kuna 'x', na 'x' yenyewe usiibadilishe. Ikiwa tutajaribu kutatua tatizo 'moja kwa moja', hatutafanikiwa:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # itatoa '! baaa', lakini tulitaka '!x baaa'

Uchunguzi wa Mbele

Ili kutatua tatizo unahitaji njia ya kusema, kwamba 'x' haifai kubadilishwa. Hii inafanywa kwa kutumia mabano maalum (?= ), ambayo hutazama tu, lakini haichukui pamoja nayo.

Mabano haya yanaitwa uchunguzi chanya wa mbele. Chanya - kwa sababu 'x' (katika kesi yetu) inapaswa kuwepo - ndio tu basi badala itatokea.

Wacha tutumie mabano haya kutatua tatizo letu:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # itatoa '!x aaab

Kuna pia uchunguzi hasifi wa mbele - (?! ) - ambayo, kinyume chake, inasema, kwamba kitu hakipaswi kuwepo. Katika mfano ufuatao, badala itatokea, tu ikiwa baada ya 'aaa' hakuna 'x':

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # itatoa 'aaax !b'

Uchunguzi wa Nyuma

Vivyo hivyo kuna uchunguzi chanya wa nyuma - (?<= ). Katika mfano ufuatao badala itatokea, tu ikiwa kabla ya 'aaa' kuna 'x':

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # itatoa 'x!'

Na kuna pia uchunguzi hasifi wa nyuma - (?<! ). Katika mfano ufuatao badala itatokea, tu ikiwa kabla ya 'aaa' hakuna 'x':

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # itatoa 'b!'

Matatizo ya Vitendo

Kuna mfuatano ulio na majina ya vitendakazi:

txt = 'func1() func2() func3()'

Pata safu ya majina ya vitendakazi kutoka kwenye mfuatano.

Kuna mfuatano na kitambulisho:

txt = '<a href="" class="eee" id="zzz">'

Pata safu ya majina ya sifa za kitambulisho hiki.

Kuna mfuatano na vigezo:

txt = '$aaa $bbb $ccc xxxx'

Pata sehemu ndogo za mfuatano, ambazo ziko mbele ya ishara ya dola.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa