⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել