⊗ppPmRgCPN 257 of 447 menu

PHP Düzenli İfadelerde Genel Cep Numarası

Aşağıdaki durumu ele alalım. Elimizde, 1990 ile 2099 arasında değişebilen bir yıl değişkeni olduğunu varsayalım. Yılın son iki hanesini bir cepte elde etmek istediğimizi varsayalım. İlgili düzenli ifadeyi yazalım:

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

Ancak burada bizi bir rahatsızlık bekliyor. Mesele şu ki, geçen yüzyılın yılları için son iki hane ilk cepte, ikinci yüzyılın yılları için ise ikinci cepte olacak. Örnekler üzerinde görelim.

İşte ilk seçenek:

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

İşte ikinci seçenek:

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

Şimdi bulunan yıl hanelerini bir değişkene yazmak istediğimizi varsayalım. Bir sorunla karşılaşacağız, çünkü veriyi cepten alırken hangi anahtarı kullanacağımızı tam olarak bilmiyoruz:

<?php $year = $res[1]; // 1 veya 2 anahtarı gerekli ?>

Sorun bir koşul ile çözülebilir:

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

Ancak daha basit bir çözüm var. (?| ) özel komutu kullanılabilir. İçinde bulunan tüm cepler aynı numaraya sahip olacaktır.

Düzenli ifademizi düzeltelim

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

Ve şimdi yılımız kesinlikle bir numaralı cepte olacak:

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

Yılı 1990 ile 2099 arasında değişebilen tarih içeren dizeler verilmiştir:

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

Her tarih için günü birinci cepe, ayı ikinci cepe, ve yılın son iki hanesini üçüncü cepe yerleştirin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet