⊗pyPmREGL 38 of 129 menu

Kuzuia Ushindani Katika Usemi wa Kawaida katika Python

Misemo ya kawaida kwa chaguo-msingi ni mlishi. Hii inamaanisha kuwa hunasa idadi kubwa iwezekanavyo ya herufi. Hebu tuchambue kwa mfano. Hebu tuseme tuna mstari kama huu:

txt = 'aeeex zzz x kkk'

Katika mstari huu, tunataka kupata kipande cha mstari 'aeeex' kulingana na muundo ufuatao: herufi 'a', kisha herufi yoyote moja au zaidi, kisha herufi 'x':

res = re.sub('a.+x', '!', txt) print(res)

Ingawa tunahitaji kupata mstari '! zzz x kkk', mstari '! kkk' utachapishwa. Shida yote ni kwamba usemi wetu wa kawaida unatafuta herufi zote kutoka herufi 'a' hadi herufi 'x'. Lakini katika mstari wetu kuna herufi mbili 'x'! Kwa sababu ya ushindani, hutokea kwamba usemi wa kawaida unatafuta hadi herufi ya mwisho ya x, na hivyo kukamata kisichohitajika.

Bila shaka, mara nyingi tabia kama hii ndio tunayohitaji. Lakini hasa katika kesi hii inahitajika kukataa ushindani na kuambia usemi wa kawaida, kwamba itafute hadi herufi ya kwanza ya x. Katika hili kesi inapaswa kuweka alama ya kuuliza baada ya operator wa kurudia:

res = re.sub('a.+?x', '!', txt) print(res) # itatoka mstari '! zzz x kkk'

Ushindani unaweza kuzuiwa kwa waendeshaji wote wa kurudia: *, ?, na {} - kama hivi: *?, ?? na {}?.

Umeshapata mstari:

txt = 'aba accca azzza wwwwa'

Andika usemi wa kawaida, utakayopata mistari yote ambayo pande zake zimo herufi 'a', na ubadilishe kila moja kwa '!'. Kati ya herufi 'a' zinaweza kuwa herufi yoyote (isipokuwa 'a').

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