⊗pyPmREGL 38 of 129 menu

Python-da regulýar ifadeleriň halawarlygyny çäklendirmek

Regulýar ifadeler adatça halawarly. Bu olaryň iň köp mümkin bolan nyşanlary alýandygyny aňladýar. Bir mysal bilen seredeliň. Bizde şeýle bir setir bolsun:

txt = 'aeeex zzz x kkk'

Bu setirde biz şablon boýunça 'aeeex' aşaky setirini tapmak isleýäris: nyşan 'a', soňra islendik nyşan bir ýa-da birnäçe gezek, soňra nyşan 'x':

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

Biz '! zzz x kkk' setirini almaly bolsak-da, '! kkk' setiri çykar. Sebäbi, bizniň regulýar ifademiz 'a' nyşanyndan 'x' nyşanyna çenli ähli nyşanlary gözleýär. Ýöne bizniň setirimizde iki sany 'x' nyşany bar! Halawarlyk sebäpli regulýar ifade iň soňky x-e çenli gözleýär, şonuň üçin bize gerek bolmadygy alýar.

Elbetde, köplenç bu hereket bize gerek bolýar. Ýöne bu ýagdaýda halawarlygy ýatyryp, regulýar ifade birinji x-e çenli gözlemelidigini aýtmaly. Bu ýagda gaýtalanma operatorundan soň sorag nyşanyny goýmaly:

res = re.sub('a.+?x', '!', txt) print(res) # '! zzz x kkk' setirini çykarar

Halawarlygy ähli gaýtalanma operatorlaryna çäklendirip bolýar: * hem, ? hem, {} hem - şeýlelikde: *?, ?? we {}?.

Setir berlen:

txt = 'aba accca azzza wwwwa'

Gyrlarında 'a' nyşanlary duran ähli setirleri tapýan we olaryň her birini '!' bilen çalşýan regulýar ifade ýazyň. 'a' nyşanlarynyň arasynda islendik nyşan ('a' başga) bolup biler.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et