⊗ppPmRgCPN 257 of 447 menu

PHP Regular Ifodalarida Umumiy Karmon Raqami

Куйидаги вазиятни кўриб чикайлик. Фарз килайлик, бизда ўзгариши мумкин бўлган йил ўзгаргучиси бор, у 1990 дан 2099 гача. Фарз килайлик, биз йилнинг сўнги икки рақамини карманга олишни истаймиз. Мос регуляр ифодани ёзайлик:

<?php $reg = '#19(9\d)|20(\d\d)#'; ?>

Бирок, бу ерда бизни бир ноқулайлик кутмокда. Гап шундаки, ўтган аср йиллари учун сўнгги икки рақам биринчи карманга тушади, экинчи аср йиллари учун эса - иккинчи карманга. Мисолларда курамиз.

Биринчи вариант:

<?php $str = '1991'; preg_match($reg, $str, $res); var_dump($res); // [1 => '91'] ?>

Ва экинчи вариант:

<?php $str = '2021'; preg_match($reg, $str, $res); var_dump($res); // [2 => '21'] ?>

Энди фарз килайлик, биз топилган йил рақамларини ўзгаргучига ёзмоқчимиз. Бизни муаммо кутмокда, чунки биз кармандан маълумотларни қандай калит билан олишни аниқ билмаймиз:

<?php $year = $res[1]; // 1 ёки 2 калит керак ?>

Муаммони шарт орқали ечиш мумкин:

<?php if (!empty($res[1])){ $year = $res[1]; } else{ $year = $res[2]; } ?>

Бирок, соддароқ ечим мавжуд. Максус буюруқ (?| ) ишлатиш мумкин. Унинг ичидаги барча карманлар бир хил рақамга эга бўлади.

Келинг, бизнинг регуляр ифодамизни тузатайлик

<?php $reg = '#(?|19(9\d)|20(\d\d))#'; ?>

Энди бизнинг йилимиз аниқ биринчи рақамли карманда бўлади:

<?php $year = $res[1]; ?>

Санатлар билан сатрлар берилган, уларда йил 1990 дан 2099 гача ўзгариши мумкин:

<?php $arr = [ '31-12-2025', '30-11-1995', '29-10-1990', ]; ?>

Ҳар бир санат учун кунни биринчи карманга, ойни иккинчи карманга, сўнги икки йил рақамини эса - учинчи карманга қўйинг.

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