⊗ppPmRgNPB 252 of 447 menu

Nem rögzítő zárójelek a PHP reguláris kifejezéseiben

A () zárójelek két funkciót töltenek be - a karakterek csoportosítását és a zseb funkciót. De mit tegyünk, ha csoportosítanunk kell, de nem akarunk a zsebbe helyezni? Ennek a problémának a megoldására találták ki a speciális nem rögzítő zárójeleket (?: ) - ezek csoportosítanak, de nem helyeznek a zsebbe.

Példa

A következő példában az első zárójelek a csoportosításhoz szükségesek, a másodikak pedig a zsebhez. Azonban mindkét zárójel típus elhelyezi az adatokat a zsebben:

<?php $str = 'abab123'; $reg = '#(ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Ennek eredményeként a zsebeinkben a következő lesz:

<?php var_dump($res[0]); // kiírja 'abab123' var_dump($res[1]); // kiírja 'ab' var_dump($res[2]); // kiírja '123' ?>

Példa

Tegyük úgy, hogy az első zárójelpár csak csoportosítson, de ne helyezzen a zsebbe:

<?php $str = 'abab123'; $reg = '#(?:ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Ennek eredményeként az első zsebben a számunk lesz:

<?php var_dump($res[1]); // kiírja '123' ?>

Gyakorlati feladatok

Adottak részsztringek, kettéosztva tetszőleges számú $@ párral:

<?php $str = 'aaa$@bbb aaa$@$@bbb aaa$@$@$@bbb'; ?>

Keresse meg mindegyik ilyen részsztringet és mindegyik megtalált részsztring esetén helyezze az első zsebbe az elválasztó előtti részt, a második zsebbe pedig az elválasztó utáni részt.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás