⊗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çeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу