⊗ppPmRgNP 255 of 447 menu

დასახელებული კარმები PHP-ის რეგულარულ გამონათქვამებში

დავუშვათ, preg_match-ის საშუალებით გვსურს თარიღის დაყოფა დღედ, თვედ და წლად. ამისთვის გამოვიყენოთ კარმები:

<?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'] ?>

როგორც ხედავთ, შედეგად ვიღებთ მასივს, რომელშიც ნულოვან ელემენტში იქნება მთელი თარიღი, პირველში - წელი, მეორეში - თვე, მესამეში - დღე.

თუმცა, ზოგჯერ მოსახერხებელი იქნებოდა კარმების შიგთავსის მიღება ასოციაციურ მასივად. ანუ ჩვენს შემთხვევაში კარგი იქნებოდა მიგვეღო აი ასეთი მასივი:

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

ამისთვის რეგულარულ გამონათქვამებში არსებობს სპეციალური სინტაქსი. აი ის: (?<name>pattern), სადაც pattern - ეს არის რეგულარული გამონათქვამი, ხოლო name - ეს არის კარმის სახელი.

მოდით გადავიწეროთ ჩვენი რეგულარული გამონათქვამი თარიღისთვის დასახელებული კარმების მეშვეობით:

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

შედეგად ჩვენ მივიღებთ ასოციაციურ მასივს, რომელშიც გასაღებები იქნება კარმების სახელები, ხოლო მნიშვნელობები - ის, რაც მათში მოხვდა:

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

სინამდვილეში, შედეგის მასივში კარმების მნიშვნელობები იქნება ხელმისაწვდომი როგორც სახელის, ისე რიგითი ნომრის მიხედვით. ანუ, მაგალითად, წელი იქნება ხელმისაწვდომი 'year' გასაღებით და 1 ნომრით, თვე - 'month' გასაღებით და 2 ნომრით და ა.შ.:

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

აღწერილ დასახელებულ კარმებს აქვთ კიდევ რამდენიმე ალტერნატიული სინტაქსი: (?P<name>pattern) და (?'name'pattern).

მოცემულია სტრიქონი დროით:

<?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çeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა