⊗ppPmRgESCh 226 of 447 menu

Escaping Special Characters in PHP Regular Expressions

Predpostavimo, da želimo, da poseben znak predstavlja samega sebe. Za to ga je potrebno escapirati z uporabo poševnice nazaj. Poglejmo si primere.

Primer

V naslednjem primeru je avtor regularnega izraza želel, da bi bil vzorec iskanja takšen: črka 'a', nato plus '+', nato črka 'x'. Vendar avtor kode ni escapiral znaka '+', zato je vzorec iskanja v resnici takšen: črka 'a' enkrat ali večkrat, nato črka 'x':

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

'a+x ! ! !'

Primer

Tokrat je avtor escapiral plus z poševnico nazaj. Zdaj je vzorec iskanja takšen, kakor mora biti: črka 'a', nato plus '+', nato črka 'x'.

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

'! ax aax aaax'

Primer

V tem primeru je vzorec takšen: črka 'a', nato pika '.', nato črka 'x':

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

'! abx azx'

Primer

V naslednjem primeru je avtor pozabil escapirati poševnico in so bile ujete vse podnize, ker neescapirana pika predstavlja poljuben znak:

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

'! ! !'

Primer

Opozorilo: če pozabite poševnico nazaj za piko (ko naj bi predstavljala samo sebe) - tega morda sploh ne boste opazili:

<?php preg_replace('#a.x#', '!', 'a.x'); // vrne '!', kot smo želeli ?>

Vizualno deluje pravilno (ker pika predstavlja poljuben znak, vključno z običajno piko '.'). Toda če zamenjamo niz, v katerem potekajo zamenjave - bomo videli našo napako:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // vrne '! ! !', pričakovali pa smo '! abx azx' ?>
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni