⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել