⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш