⊗ppPmRgNP 255 of 447 menu

PHP Regular Ifodalaridagi Nomlangan Qarmoqlar

Faraz qilaylik, preg_match yordamida sanani kun, oy va yilga ajratmoqchimiz. Buning uchun qarmoqlardan foydalanamiz:

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

Ko‘rib turganingizdek, natijada biz massivni olamiz, buning nolinchi elementi butun sana, birinchi elementida - yil, ikkinchisida - oy, uchinchisida - kun bo‘ladi.

Biroq, ba'zan qarmoqlar tarkibini assotsiativ massiv ko‘rinishida olish qulay bo‘lardi. Ya'ni bizning holatda quyidagi massivni olish yaxshi bo‘lar edi:

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

Buning uchun regular ifodalarda maxsus sintaksis mavjud. Mana u: (?<name>pattern), bu yerda pattern - regular ifoda, name esa qarmoq nomi.

Keling, sanani ifodalovchi regular ifodamizni nomlangan qarmoqlar orqali qayta yozamiz:

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

Natijada biz assotsiativ massivga ega bo‘lamiz, unda kalitlar qarmoq nomlari, qiymatlar esa ularga tushgan ma'lumotlar bo‘ladi:

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

Aslida, natija massivida qarmoqlarning qiymatlari ham nom, ham tartib raqami bo‘yicha mavjud bo‘ladi. Ya'ni, masalan, yil 'year' kaliti va 1 raqami orqali, oy - 'month' kaliti va 2 raqami orqali va hokazo:

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

Tasvirlangan nomlangan qarmoqlarning yana bir nechta alternativ sintaksislari mavjud: (?P<name>pattern) va (?'name'pattern).

Vaqtni ifodalovchi qator berilgan:

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

Soat, minut va soniyalarni alohida nomlangan qarmoqlarga joylashtiring.

Natija massividan barcha raqamlangan qarmoqlarni o‘chirib, faqat nomlanganlarini qoldiradigan funksiya yozing.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish