⊗ppPmRgESCh 226 of 447 menu

Ekriranje specijalnih karaktera u regex-u PHP

Pretpostavimo da želimo da učinimo da specijalni karakter označava samog sebe. Za to ga treba ekranirati koristeći obrnutu kosu crtu. Hajde da pogledamo na primerima.

Primer

U sledećem primeru autor regex-a je želeo da šablon pretrage izgleda ovako: slovo 'a', zatim plus '+', zatim slovo 'x'. Međutim, autor koda nije ekranirao znak '+' i zato šablon pretrage zapravo izgleda ovako: slovo 'a' jedan ili više puta, zatim slovo 'x':

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a+x#', '!', $str); ?>

Kao rezultat, u promenljivu će biti upisano sledeće:

'a+x ! ! !'

Primer

Sada je autor ekranirao plus obrnutom kosom crtom. Sada šablon pretrage izgleda onako kako treba: slovo 'a', zatim plus '+', zatim slovo 'x'.

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a\+x#', '!', $str); ?>

Kao rezultat, u promenljivu će biti upisano sledeće:

'! ax aax aaax'

Primer

U ovom primeru šablon izgleda ovako: slovo 'a', zatim tačka '.', zatim slovo 'x':

<?php $str = 'a.x abx azx'; $res = preg_replace('#a\.x#', '!', $str); ?>

Kao rezultat, u promenljivu će biti upisano sledeće:

'! abx azx'

Primer

U sledećem primeru autor je zaboravio da ekranira tačku i pod regex su upale sve podniske, pošto neekranirana tačka označava bilo koji znak:

<?php $str = 'a.x abx azx'; $res = preg_replace('#a.x#', '!', $str); ?>

Kao rezultat, u promenljivu će biti upisano sledeće:

'! ! !'

Primer

Obratite pažnju na to da ako zaboravite obrnutu kosu crtu za tačku (kada ona treba da označava samu sebe) - to se možda neće ni primetiti:

<?php preg_replace('#a.x#', '!', 'a.x'); // vratiće '!', kao što smo i želeli ?>

Vizuelno radi ispravno (pošto tačka označava bilo koji znak, uključujući i običnu tačku '.'). Ali ako promenimo string u kojem se vrše zamene - videćemo našu grešku:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // vratiće '! ! !', a očekivalo se '! abx azx' ?>
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