⊗ppPmRgNP 255 of 447 menu

Именовани џепови у регуларним изразима ПХП-а

Рецимо да помоћу 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); ?>

Као резултат, добићемо асоцијативни низ, у коме ће кључеви бити имена џепова, a вредности - оно што је у њих упало:

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

Заправо, у низу са резултатом, вредности џепова ће бити доступне и по имену и по редном броју. То јесте, на пример, година ће бити доступна под кључем 'year' и под бројем 1, месец - под кључем 'month' и под бројем 2 и тако даље:

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

Описанa именованa џеповa имају још неколико алтернативних синтакси: (?P<name>pattern) и (?'name'pattern).

Дат je низ са временом:

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

Ставите сате, минуте и секунде у одвојене именоване џепове.

Напишите функцију која у низу са резултатом обрише све нумерисане џепове, оставивши само именоване.

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