⊗ppPmRgVA 258 of 447 menu

Előrenézés a PHP reguláris kifejezéseiben

Időnként a következő típusú feladatot kell megoldanunk: találjunk meg egy 'aaa' stringet és cseréljük ki '!'-ra, de csak akkor, ha a 'aaa' után 'x' áll, magát a 'x'-et pedig ne cseréljük ki. Ha a feladatot 'frontális' módon próbáljuk megoldani, akkor nem fog sikerülni:

<?php preg_replace('#aaax#', '!', 'aaax'); // '!' lesz, de '!x'-nek kellene ?>

A feladat megoldásához szükség van egy módszerre, amivel elmondhatjuk, hogy a 'x'-et ne vegye fel a csere részeként. Ez a speciális zárójelek segítségével történik (?= ), amelyek csak "odanéznek", de nem "viszik magukkal" a tartalmat.

Ezeket a zárójeleket pozitív előrenézésnek hívják. Pozitív - mivel a 'x'-nek (a mi esetünkben) jelen kell lennie - csak akkor történik meg a csere.

Alkalmazzuk ezeket a zárójeleket a feladatunk megoldására:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // '!x'-et ad vissza ?>

Létezik negatív előrenézés is - (?! ) - ez éppen ellenkezőleg azt mondja, hogy valamit nem szabad, hogy következzen. A következő példában a csere csak akkor történik meg, ha a 'aaa' után nem áll 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // '!b'-t ad vissza ?>

Adott egy függvényneveket tartalmazó string:

<?php $str = 'func1() func2() func3()'; ?>

Kapjuk meg a függvénynevek tömbjét a stringből.

Adott egy tag-et tartalmazó string:

<?php $str = '<a href="" class="eee" id="zzz">'; ?>

Kapjuk meg a tag attribútumainak neveit tartalmazó tömböt.

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