⊗ppPmRgNP 255 of 447 menu

PHP регуляр ида номланган карманлар

Фарз қилайлик, preg_match ёрдамида sанани кун, ой ва йилга ажратишни истаймиз. Бунинг учун карманлардан фойдаланамиз:

<?php $str = '2025-10-29'; $reg = '#(\d{4})-(\d{2})-(\d{2})#'; preg_match($reg, $str, $match); var_dump($match); // чиқади ['2025-10-29', '2025', '10', '29'] ?>

Кўриб турганингиздек, натижада биз массив оламиз, унда ноль элементда бутун санa, биринчида - йил, иккинчида - ой, учинчида - кун бўлади.

Аммо баъзан, карманларнинг мундарижасини ассоциатив массив кўринишида олж qулай бўлар эди. Яъни бизнинг ҳолимизда шундай массив олса яхши бўлар эди:

[ 'year' => '2025', 'month' => '10', 'day' => '29' ]

Бuning учун регуляр ифодаларда махсус синтаксис мавжуд. Мана у: (?<name>pattern), бу ерда pattern - регуляр ифода, name эса карман номи.

Келинг, санa учун бизнинг регуляр ифодамизни номланган карманлар орқали қайта ёзайлик:

<?php $str = '2025-10-29'; $reg = '#(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})#'; preg_match($reg, $str, $match); var_dump($match); ?>

Натижада бизда ассоциатив массив ҳосил бўлади, унда калитлар sifatida карман номлари, қийматлар sifatida эса уларга тушган нарсалар бўлади:

[ 'year' => '2025', 'month' => '10', 'day' => '29', ]

Аслида, натижа массивида карманларнинг қийматлари номи bilan ҳам, тартиб рақами bilan ҳам олина олади. Яъни, масалан, йил 'year' калити орқали ва 1 рақами орқали, ой - 'month' калити орқали ва 2 рақами орқали ва ҳоказо:

[ 'year' => '2025', 'month' => '10', 'day' => '29', 1 => '2025', 2 => '10', 3 => '29' ]

Тасвирланган номланган карманларнинг яна бир неча алтернатив синтаксислари мавжуд: (?P<name>pattern) ва (?'name'pattern).

Вақт bilan сатр берилган:

<?php $str = '12:59:59'; ?>

Сўатлар, минутлар ва сонияларни алоҳида номланган карманларга қўйинг.

Натижа массивидаги барча рақамланган карманларни ўчириб, фақат номланганларни қолдирадиган функция ёзинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш