⊗ppPmRgNPB 252 of 447 menu

Kllapat që nuk ruajnë në regex të PHP

Kllapat () kryejnë dy funksione - grupimin e karaktereve dhe funksionin e kaptësit (capturing group). Po çfarë duhet bërë nëse ne kemi nevojë të grupojmë, por jo për të futur në kaptës? Për zgjidhjen e këtij problemi janë krijuar kllapat që nuk ruajnë (?: ) - ato grupojnë, por nuk e vendosin në kaptës.

Shembull

Në shembullin vijues kllapat e para na duhen për grupim, kurse të dytat - për kaptës. Megjithatë, të dyja llojet e kllapave ruajnë të dhëna në kaptës:

<?php $str = 'abab123'; $reg = '#(ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Si rezultat në kaptësat tanë do të ketë si më poshtë:

<?php var_dump($res[0]); // do të nxjerrë 'abab123' var_dump($res[1]); // do të nxjerrë 'ab' var_dump($res[2]); // do të nxjerrë '123' ?>

Shembull

Le t'i bëjmë që çifti i parë i kllapave vetëm të grupojë, por të mos vendosë në kaptës:

<?php $str = 'abab123'; $reg = '#(?:ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Si rezultat në kaptësin e parë do të jetë numri ynë:

<?php var_dump($res[1]); // do të nxjerrë '123' ?>

Detyra praktike

Jepen nënvargjet, të ndara në dy pjesë nga një numër arbitrar çiftesh $@:

<?php $str = 'aaa$@bbb aaa$@$@bbb aaa$@$@$@bbb'; ?>

Gjeni secilën nga këto nënvargje dhe për secilën nënvarg të gjetur vendosni në kaptësin e parë atë që qëndron përpara ndarësit, kurse në kaptësin e dytë - atë që qëndron pas ndarësit.

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