⊗ppPmRgNP 255 of 447 menu

Elnevezett zsebek a PHP reguláris kifejezéseiben

Tegyük fel, hogy a preg_match segítségével egy dátumot szeretnénk felbontani napra, hónapra és évre. Használjunk ehhez zsebeket:

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

Amint láthatod, az eredmény egy tömb, amelynek nulladik eleme a teljes dátum, az elsőben - az év, a másodikban - a hónap, a harmadikban - a nap lesz.

Időnként azonban kényelmesebb lenne a zsebek tartalmát asszociatív tömbként kapni. Vagyis a mi esetünkben jó lenne ilyen tömböt kapni:

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

Ehhez a reguláris kifejezésekben létezik egy speciális szintaxis. Íme: (?<name>pattern), ahol pattern - maga a reguláris kifejezés, name pedig a zseb neve.

Írjuk át a dátumra vonatkozó reguláris kifejezésünket elnevezett zsebekkel:

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

Ennek eredményeképpen egy asszociatív tömböt kapunk, amelyben a kulcsok a zsebek nevei, az értékek pedig az, ami beléjük került:

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

Valójában az eredménytömbben a zsebek értékei mind név, mind sorszám alapján elérhetők lesznek. Vagyis például az év elérhető lesz a 'year' kulccsal és a 1 számmal, a hónap - a 'month' kulccsal és a 2 számmal, és így tovább:

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

Az leírt elnevezett zsebeknek van még néhány alternatív szintaxisuk: (?P<name>pattern) és (?'name'pattern).

Adott egy időt tartalmazó sztring:

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

Helyezd az órákat, perceket és másodperceket külön elnevezett zsebekbe.

Írj egy függvényt, amely az eredménytömbből eltávolítja az összes számozott zsebet, meghagyva csak az elnevezetteket.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás