⊗ppPmRgVA 258 of 447 menu

Pogled napred u PHP regularnim izrazima

Ponekad je potrebno rešiti problem ovog tipa: pronaći string 'aaa' i zameniti ga sa '!', ali samo ako iza 'aaa' stoji 'x', a sam 'x' pritom ne zameniti. Ako pokušamo da rešimo problem 'direktno', nećemo uspeti:

<?php preg_replace('#aaax#', '!', 'aaax'); // biće '!', a treba '!x' ?>

Za rešavanje zadatka potreban je način da se kaže, da 'x' ne treba zameniti. To se radi pomoću specijalnih zagrada (?= ), koje samo 'gledaju', ali ne uzimaju sa sobom.

Ove zagrade se zovu pozitivni pogled napred (positive lookahead). Pozitivni - jer 'x' (u našem slučaju) mora da postoji - samo tada će se izvršiti zamena.

Hajde da primenimo ove zagrade za rešavanje našeg zadatka:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // vratiće '!x' ?>

Postoji i negativni pogled napred (negative lookahead) - (?! ) - on, obrnuto, govori da nečega ne sme biti. U sledećem primeru zamena će se izvršiti, samo ako iza 'aaa' ne stoji 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // vratiće '!b' ?>

Dat je string koji sadrži imena funkcija:

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

Preuzmite niz imena funkcija iz stringa.

Dat je string sa tagom:

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

Preuzmite niz imena atributa ovog taga.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij