⊗ppPmRgCPN 257 of 447 menu

Totalt antal fickor i PHP reguljära uttryck

Låt oss överväga följande situation. Antag att vi har en variabel med ett år som kan variera från 1990 till 2099. Antag att vi vill få de två sista siffrorna av året i en ficka. Låt oss skriva motsvarande reguljära uttryck:

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

Här väntar dock ett bekymmer på oss. Saken är att för århundraden som har passerat kommer de två siffrorna att hamna i den första fickan, medan för århundraden som kommer - i den andra. Låt oss titta på exempel.

Här är det första alternativet:

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

Och här är det andra alternativet:

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

Antag nu att vi vill skriva de hittade årsiffrorna till en variabel. Då väntar ett problem, för vi vet inte exakt med vilken nyckel vi ska hämta data från fickan:

<?php $year = $res[1]; // behöver nyckel antingen 1, eller 2 ?>

Problemet kan lösas med ett villkor:

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

Det finns dock en enklare lösning. Man kan använda ett speciellt kommando (?| ). Alla fickor som finns inuti den kommer att ha samma nummer.

Låt oss rätta till vårt reguljära uttryck

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

Och nu kommer vårt år säkert att vara i fickan med nummer ett:

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

Givna strängar med datum, där året kan variera från 1990 till 2099:

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

För varje datum, sätt dagen i den första fickan, månaden i den andra, och de två sista siffrorna i året - i den tredje.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa