⊗ppPmRgGL 229 of 447 menu

PHP-dä regulýar ifadeleriň açgözligini çäklendirmek

Regulýar ifadeler deslapky ýagdaýynda açgöz bolýar. Bu onuň mümkün bolan iň köp nyşany tutýandygyny aňladýar.

Geliň bir mysal bilen düşüneli. Bizde şeýle bir setir bolsun:

<?php $str = 'aeeex zzz x kkk'; ?>

Biz bu setirde 'aeeex' setir bölegini şu şablona görä tapmak isleýäris: 'a' harp, soňra islendik nyşan bir ýa-da birnäçe gezek, soňra 'x' harp.

<?php $res = preg_replace('#a.+x#', '!', $str); ?>

Biz netijede üýtgeýjiniň içine '! zzz x kkk' setiriniň ýazylajakdygyna garaşýarys. Ýöne, bu ýerde özgerýär - üýtgeýjiniň içine '! kkk' setiri düşýär.

Mesele şonda, bizim regulýarka 'a' harpyndan 'x' harpa çenli ähli nyşanlary gözleýär. Ýöne bizim setirimizde iki sany 'x' harp bar. Açgözlik sebäpli regulýarka iň soňky 'x'-e çenli gözleýär, şeýlelikde biz garaşanymyzdan başga zat tutýar.

Elbetde, köplenç bu hereket bize gerek bolýar. Ýöne, ýörite bu ýagdaýda biz açgözligi ýatyryp, regulýarkanyň ilkinji 'x'-i tapmagyny aýtmak isleýäris.

Açgözligi çäklendirmek üçin gaýtalanma operatoryndan soň sorag belgisini goýmaly:

<?php $res = preg_replace('#a.+?x#', '!', $str); ?>

Açgözligi ähli gaýtalanma operatorlary üçin çäklendirip bolýar, şeýle: *?, ?? we {}?.

Setir berlen:

<?php $str = 'aba accca azzza wwwwa'; ?>

Her bir gyrasynda 'a' harplary duran ähli setirleri tapýan regulýar ifadäni ýazyň we olaryň her birini '!' bilen çalyşyň. a harplarynyň 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