⊗ppPmRgCPN 257 of 447 menu

PHP тұрақты өрнектеріндегі жалпы қалта нөмірлері

Келесі жағдайды қарастырайық. Бізде жылы бар айнымалы бар делік, ол 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çeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау