⊗ppPmRgESCh 226 of 447 menu

Ескреивање специјалних карактера у регуларним изразима у PHP-у

Претпоставимо да желимо да се постигне да специјални карактер представља самог себе. За то га треба ескреивати користећи обрнуту косу црту. Хајде да погледамо на примерима.

Пример

У следећем примеру аутор регуларног израза је желео да шаблон за претрагу изгледа овако: слово 'a', затим плус '+', затим слово 'x'. Међутим, аутор кода није ескреирао симбол '+' и зато шаблон за претрагу заправо изгледа овако: слово 'a' један или више пута, затим слово 'x':

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

Као резултат у променљиву ће се уписати следеће:

'a+x ! ! !'

Пример

А сада је аутор ескреирао плус обрнутом косом цртом. Сада шаблон за претрагу изгледа тако како треба: слово 'a', затим плус '+', затим слово 'x'.

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

Као резултат у променљиву ће се уписати следеће:

'! ax aax aaax'

Пример

У овом примеру шаблон изгледа овако: слово 'a', затим тачка '.', затим слово 'x':

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

Као резултат у променљиву ће се уписати следеће:

'! abx azx'

Пример

А у следећем примеру аутор је заборавио да ескреира тачку и регуларни израз је обухватио све поднизове, јоб не-ескреирана тачка представља било који карактер:

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

Као резултат у променљиву ће се уписати следеће:

'! ! !'

Пример

Обратите пажњу на то да ако заборавите обрнуту косу црту за тачку (када она треба да представља саму себе) - то се може чак и не приметити:

<?php preg_replace('#a.x#', '!', 'a.x'); // вратиће '!', као што смо и желели ?>

Визуелно ради исправно (јер тачка представља било који карактер, укључујући и обичну тачку '.'). Али ако променимо стринг, у ком се врше замене - видећемо нашу грешку:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // вратиће '! ! !', а очекивало се '! abx azx' ?>
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј