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

Бул үчүн регулярдуу формулаларда атайын синтаксис бар. Мына ушул: (?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' ]

Сүрөттөлгөн атталган кармандардагы дагы бир нече альтернативдүү синтаксистер бар: (?Ppattern) жана (?'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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу