⊗ppPmRgGL 229 of 447 menu

Kufizimi i lakmisë në shprehjet e rregullta në PHP

Shprehjet e rregullta janë lakmode si parazgjedhje. Kjo do të thotë se ato kapin numrin maksimal të mundshëm të karaktereve.

Le ta shpjegojmë me një shembull. Le të themi se kemi këtë varg:

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

Le të themi se në këtë varg duam të gjejmë nënvargun 'aeeex' sipas modelit të mëposhtëm: shkronja 'a', pastaj çdo karakter një ose më shumë herë, pastaj shkronja 'x'.

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

Ne pritshim që në variabël si rezultat të shkruhej vargu '! zzz x kkk'. Megjithatë, kjo nuk ndodh - në variabël përfundon vargu '! kkk'.

E gjitha ka të bëjë me faktin se shprehja jonë e rregullt kërkon të gjitha karakteret nga shkronja 'a' deri te shkronja 'x'. Por në vargun tonë janë dy shkronja 'x'. Për shkak të lakmisë del që shprehja e rregullt kërkon deri te 'x'-i i fundit, duke kapur në këtë mënyrë diçka tjetër nga ajo që ne prisnim.

Sigurisht, shpesh kjo sjellje është ajo që na duhet. Por konkretisht në këtë rast ne do të donim të çaktivizonim lakminë dhe t'i thoshim shprehjes së rregullt të kërkonte deri te 'x'-i i parë.

Për të kufizuar lakminë, duhet të vendosni shenjën pyetje pas operatorit të përsëritjes:

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

Lakmia mund të kufizohet për të gjithë operatorët e përsëritjes, kështu: *?, ?? dhe {}?.

Është dhënë vargu:

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

Shkruani një shprehje të rregullt, e cila do të gjejë të gjitha vargjet anët e të cilëve janë shkronjat 'a', dhe do të zëvendësojë secilën prej tyre me '!'. Midis shkronjave a mund të ketë çdo karakter (përveç 'a').

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo