⊗ppPmRgESCh 226 of 447 menu

Specialiųjų simbolių ekranavimas PHP reguliariosiose išraiškose

Tarkime, kad norime, kad specialusis simbolis reikštų pats save. Tam jį reikia ekranuoti naudojant atgalinį brūkšnį. Pažiūrėkime pavyzdžiais.

Pavyzdys

Šiame pavyzdyje reguliariosios išraiškos autorius norėjo, kad paieškos šablonas atrodytų taip: raidė 'a', tada pliusas '+', tada raidė 'x'. Tačiau, kodo autorius neekranavo simbolio '+' ir todėl paieškos šablonas iš tikrųjų atrodo taip: raidė 'a' vieną ar daugiau kartų, po to raidė 'x':

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

Dėl to į kintamąjį bus įrašyta taip:

'a+x ! ! !'

Pavyzdys

O dabar autorius ekranavo pliusą atgaliniu brūkšniu. Dabar paieškos šablonas atrodo taip, kaip reikia: raidė 'a', tada pliusas '+', tada raidė 'x'.

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

Dėl to į kintamąjį bus įrašyta taip:

'! ax aax aaax'

Pavyzdys

Šiame pavyzdyje šablonas atrodo taip: raidė 'a', tada taškas '.', tada raidė 'x':

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

Dėl to į kintamąjį bus įrašyta taip:

'! abx azx'

Pavyzdys

Kitame pavyzdyje autorius pamiršo ekranuoti brūkšnį ir pagal reguliariąją išraišką pataikė į visus poeilutes, nes neekranuotas taškas reiškia bet kurį simbolį:

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

Dėl to į kintamąjį bus įrašyta taip:

'! ! !'

Pavyzdys

Atkreipkite dėmesį į tai, kad jei pamiršite atgalinį brūkšnį taškui (kai jis turi reikšti pats save) - to galima net nepastebėti:

<?php preg_replace('#a.x#', '!', 'a.x'); // grąžins '!', kaip ir norėjome ?>

Vizualiai veikia teisingai (kadangi taškas reiškia bet kurį simbolį, taip pat ir įprastą tašką '.'). Bet jei pakeisime eilutę, kurioje vyksta pakeitimai - pamatysime savo klaidą:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // grąžins '! ! !', o tikėtasi '! abx azx' ?>
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti