⊗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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау