Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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