⊗ppPmRgNP 255 of 447 menu

Sloturi denumite în expresiile regulate PHP

Să presupunem că folosind preg_match vrem să împărțim o dată în zi, lună și an. Să folosim pentru aceasta sloturi:

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

După cum vedeți, în rezultat obținem un array, în care elementul zero va conține întreaga dată, în primul - anul, în al doilea - luna, în al treilea - ziua.

Uneori, totuși, ar fi convenabil să obținem conținutul sloturilor sub forma unui array asociativ. Adică în cazul nostru ar fi bine să obținem un array ca acesta:

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

Pentru aceasta în expresiile regulate există o sintaxă specială. Iat-o: (?<name>pattern), unde pattern - este expresia regulată, iar name - este numele slotului.

Să rescriem expresia noastră regulată pentru dată cu sloturi denumite:

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

Ca rezultat, vom obține un array asociativ în care cheile vor fi numele sloturilor, iar valorile - ceea ce a fost capturat în ele:

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

De fapt, în array-ul cu rezultat, valorile sloturilor vor fi accesibile atât după nume, cât și după numărul de ordine. Adică, de exemplu, anul va fi accesibil după cheia 'year' și după numărul 1, luna - după cheia 'month' și după numărul 2 și așa mai departe:

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

Sloturile denumite descrise mai au câteva sintexe alternative: (?P<name>pattern) și (?'name'pattern).

Este dat un șir cu ora:

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

Puneți orele, minutele și secundele în sloturi denumite separate.

Scrieți o funcție care în array-ul cu rezultat va șterge toate sloturile numerotate, lăsând doar pe cele denumite.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge