⊗ppPmRgNP 255 of 447 menu

PHP-də Adlandırılmış Qruplar

Tutaq ki, preg_match ilə tarixi gün, ay və ilə ayırmaq istəyirik. Bunun üçün qruplardan istifadə edək:

<?php $str = '2025-10-29'; $reg = '#(\d{4})-(\d{2})-(\d{2})#'; preg_match($reg, $str, $match); var_dump($match); // çıxardacaq ['2025-10-29', '2025', '10', '29'] ?>

Gördüyünüz kimi, nəticədə sıfırıncı elementdə bütün tarixin, birincidə - ilin, ikincidə - ayın, üçüncüdə - günün olduğu bir massiv alırıq.

Bəzən, however, qrupların məzmununu assosiativ massiv şəklində almaq rahat olardı. Yəni bizim vəziyyətimizdə belə bir massiv almaq yaxşı olardı:

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

Bunun üçün regex ifadələrində xüsusi sintaksis mövcuddur. Budur: (?<name>pattern), burada pattern - regex ifadəsi, name ise qrupun adıdır.

Gəlin tarix üçün regex ifadəmizi adlandırılmış qruplar vasitəsilə yenidən yazaq:

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

Nəticədə, açarı qrupların adları, dəyərləri isə onların tutduğu məzmun olan assosiativ massiv alınacaq:

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

Əslində, nəticə massivində qrupların dəyərləri həm ada, həm də sıra nömrəsinə görə əlçatan olacaq. Yəni, məsələn, il 'year' açarı və 1 nömrəsi ilə, ay - 'month' açarı və 2 nömrəsi ilə və s. əlçatan olacaq:

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

Təsvir olunan adlandırılmış qrupların bir neçə alternativ sintaksisi də var: (?P<name>pattern)(?'name'pattern).

Zamanı olan bir sətir verilmişdir:

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

Saati, dəqiqəni və saniyəni ayrı-ayrı adlandırılmış qruplara yerləşdirin.

Nəticə massivində nömrələnmiş bütün qrupları silən, yalnız adlandırılmışları saxlayan bir funksiya yazın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et