⊗ppPmRgESCh 226 of 447 menu

Speciális karakterek escape-elése PHP reguláris kifejezésekben

Tegyük fel, hogy azt szeretnénk elérni, hogy egy speciális karakter önmagát jelölje. Ehhez escape-elni kell egy visszaperjelellel. Nézzük meg példákon.

Példa

A következő példában a reguláris kifejezés szerzője azt szerette volna, hogy a keresési minta így nézzen ki: az 'a' betű, majd egy plusz '+', majd az 'x' betű. Azonban a kód szerzője nem escape-elte a '+' karaktert, ezért a keresési minta valójában így néz ki: az 'a' betű egy vagy többször, majd az 'x' betű:

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

Ennek eredményeképpen a változóba a következő íródik:

'a+x ! ! !'

Példa

Most a szerző escape-elte a pluszt egy visszaperjelellel. Most a keresési minta olyan, amilyennek lennie kell: az 'a' betű, majd egy plusz '+', majd az 'x' betű.

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

Ennek eredményeképpen a változóba a következő íródik:

'! ax aax aaax'

Példa

Ebben a példában a minta így néz ki: az 'a' betű, majd egy pont '.', majd az 'x' betű:

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

Ennek eredményeképpen a változóba a következő íródik:

'! abx azx'

Példa

A következő példában a szerző elfelejtette escape-elni a pontot, és a reguláris kifejezés minden részsztringre illeszkedett, mivel az escape-elatlan pont bármely karaktert jelöl:

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

Ennek eredményeképpen a változóba a következő íródik:

'! ! !'

Példa

Figyeljük meg, hogy ha elfelejtjük a visszaperjelet a pont előtt (amikor önmagát kellene jelölje) - ezt észre sem vehetjük:

<?php preg_replace('#a.x#', '!', 'a.x'); // visszaadja '!'-t, ahogy szerettük volna ?>

Vizuálisan helyesen működik (mivel a pont bármely karaktert jelöl, beleértve a közönséges pontot '.' is). De ha megváltoztatjuk a sztringet, amiben a csere történik - látni fogjuk a hibánkat:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // visszaadja '! ! !'-t, de '! abx azx' vártuk ?>
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás