⊗ppPmRgSHy 238 of 447 menu

PHP регуляр ифодаларда гижин ичидаги дефис

Дефис - [] ичида ҳам maxsus символ (аммо ташқарида - эмас). Агар сизга дефис ўзининг символи sifatida керак бўлса - уни _гуруҳ бўлиб қолиш имкони бўлмаган_ жойга қўйинг.

Бу нима учун муҳим: сиз ўзингиз сезмай turib белгилар гуруҳи яратиб қўйишингиз мумкин. Мисол учун, мана бу - [:-@] - сиз қос инуқта, дефис ва @ белгисини танлайди, деб ўйлайсиз, аммо аслида : ва @ ўртасидаги белгилар гуруҳи ҳосил бўлади. Бу гуруҳга quyidagi белгилар киради: :, ;, ?, <, =, >.

Улар қаердан келди? ASCII jadvalidan - қос инуқтанинг рақами @ белгисиникидан кичик - ва гуруҳ ҳосил бўлади. Яъни барча гуруҳлар ASCII таблицаси бўйича ҳосил бўлади (исталганда будан фойдаланиш мумкин).

Бу билан курашиш қандай: дефис белгисини аник гуруҳ белгиси sifatida қабул қилинмайдиган жойга, масалан, бошланишида ёки охирида (яъни [ дан кейин ёки ] дан олдин) қўйинг.

Шунингдек, дефисни экранлаш мумкин - у ҳолда у ўрнига қарамай ўзини ифоблайди. Мисол uchun, [:-@] ўрнига [:\-@] ёзинг - ва энди гуруҳ бўлмайди, балки учта белги бўлади - қос инуқта, дефис ва @ белгиси.

Мисол

Quyidagi misolda qidirуv naqshи шундай: 1 рақам, кейин 'a' дан 'z' гача ҳарф, кейин 2 рақам:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a-z]2#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! 1-2 ! !'

Мисол

Келинг энди дефисни экранлаймиз. Натижада qidirуv naqshи шундай: 1 рақам, кейин 'a' ҳарфи, ёки дефис, ёки 'z' ҳарфи, кейин 2 рақам:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a\-z]2#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! ! 1c2 !'

Мисол

Уни экранламасдан, ёлғиз дефисни joyini o'zgartirish мумкин:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[az-]2#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! ! 1c2 !'

Мисол

Quyidagi misolda qidirуv naqshи шундай: биринчи белги - кичик ҳарфлар ёки дефис '-', кейин иккита 'x' ҳарфи:

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-z-]xx#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! Axx ! @xx'

Мисол

Quyidagi misolda qidirуv naqshи шундай: биринчи белги - кичик, катта ҳарфлар ёки дефис '-', кейин иккита 'x' ҳарфи:

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-zA-Z-]xx#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! ! ! @xx'

Мисол

Дефисни икки гуруҳ ўртасига жойлаштириш мумкин - у жерда у яна яна бир гуруҳ яратиш имкони йўқ:

<?php $str = 'axx 9xx -xx @xx'; $res = preg_replace('#[a-z-0-9]xx#', '!', $str); ?>

Натижада ўзгарувчига quyidagi ёзилади:

'! ! ! @xx'

Амалий машқлар

Берилган сатр:

<?php $str = 'xaz xBz xcz x-z x@z'; ?>

Quyidagi naqsh бўйича барча сатрларни топинг: 'x' ҳарфи, катта ёки кичик ҳарф ёки дефис, 'z' ҳарфи.

Берилган сатр:

<?php $str = 'xaz x$z x-z xcz x+z x%z x*z'; ?>

Quyidagi naqsh бўйича барча сатрларни топинг: 'x' ҳарфи, кейин ёки доллар, ёки дефис ёки плюс, кейин 'z' ҳарфи.

Ўзбек
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
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш