⊗ppPmRgCPN 257 of 447 menu

PHP-də regex-də ümumi cib nömrəsi

Aşağıdakı vəziyyəti nəzərdən keçirək. Tutaq ki, bizim dəyişə bilən bir il dəyişənimiz var, 1990-dan 2099-a qədər. Tutaq ki, ilin son iki rəqəmini cibdə almaq istəyirik. Uyğun regex-i yazaq:

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

Lakin burada bizi bir narahatlıq gözləyir. Məsələ ondadır ki, keçən əsr illəri üçün iki rəqəm birinci cibə düşəcək, ikinci əsr illəri üçün isə - ikinciyə. Nümunələr üzərində baxaq.

Budur birinci variant:

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

Budur ikinci variant:

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

İndi tutaq ki, tapılan rəqəmləri il dəyişəninə yazmaq istəyirik. Bizi problem gözləyir, çünki məlumatları cibdən hansı açar ilə götürəcəyimizi dəqiq bilmirik:

<?php $year = $res[1]; // 1 və ya 2 açarı lazımdır ?>

Problemi şərt ilə həll etmək olar:

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

Lakin daha sadə bir həll var. Xüsusi (?| ) komandasından istifadə etmək olar. Onun içində olan bütün ciblər eyni nömrəyə sahib olacaq.

Gəlin regex-imizi düzəldək

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

İndi isə ilimiz mütləq bir nömrəli cibdə olacaq:

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

İli 1990-dan 2099-a qədər dəyişə bilən tarixləri olan sətirlər verilmişdir:

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

Hər bir tarix üçün günü birinci cibə, ayi ikinciyə, ilin son iki rəqəmini isə - üçüncüyə qoyun.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et