⊗ppPmRgRCb 260 of 447 menu

PHP-dä regular ifadeler bilen çaky ýazuw üsti bilen çalşyryş

Bizde aşakdaky setir bar diýeliň:

<?php $str = '2+3= 3+5= 7+8='; ?>

Biz san+san= görnüşindäki ähli konstruksiýalary tapmaly we deňlikden soň goşmanyň netijesi peýda bolýan etmelidigimizi diýeliň.

Şuna meňzeş meseläni çözmek üçin preg_replace_callback funksiýasyny ulanmak amatlydyr, bu funksiýa preg_replace funksiýasy ýaly işleýär - regular ifade boýunça tapýar we çalşyryş edýär, ýöne tapylan bölekler bilen goşmaça amallary ýerine ýetirmäge mümkinçilik berýär.

Funksiýa birinji parametr hökmünde regular ifadäni, ikinji hökmünde näme bilen çalşyrylandygyny, üçünji hökmünde bolsa çalşyryş amala aşyrylýan setiri kabul edýär.

Şol bir wagtda ikinji parametre her bir tapylan gabat geliş üçin çagyryljak funksiýa-çaky ýazuw berlilmeli.

Çaky ýazuwyň birinji parametri hökmünde tapylan ýerine ýetiriljek üýtgeýjäni görkezmeli. Bu üýtgeýje tapylanyň gap kärwanlary bolup hyzmat eder.

Amaly işde synaşaly. Bizim setirlerimizi tutjak, şol bir wagtda birinji sany birinji gapda, ikinjisini bolsa ikinji gapda ýerleşdirýän kody ýazalyň:

<?php $str = '2+3= 3+5= 7+8='; preg_replace_callback('#(\d+)\+(\d+)=#', function($match) { var_dump($match); }, $str); ?>

Netijede bizim var_dump-ymyz üç gezek işleýär, we peýdany aşakdaky ýaly çykarar:

['2+3=', '2', '3'] ['3+5=', '3', '5'] ['7+8=', '7', '7']

Dowam edýäris. Her bir gabat geliş return arkaly çaky ýazuwyň yzyna gaýtaran zady bilen çalşyryljak. Mysal üçin her bir gözlenýän setiri '!' belgisi bilen çalşyralyň:

<?php $str = '2+3= 3+5= 7+8='; $res = preg_replace_callback('#(\d+)\+(\d+)=#', function($match) { return '!'; }, $str); echo $res; // '! ! !' çykarar ?>

Indi bolsa her bir setiri içindäki san jübütiniň jemi bilen çalşyralyň:

<?php $str = '2+3= 3+5= 7+8='; $res = preg_replace_callback('#(\d+)\+(\d+)=#', function($match) { return $match[1] + $match[2]; }, $str); echo $res; // '5 8 13' çykarar ?>

Demek, biziň meselämiz diýen ýaly çözüldi. Sanlaryň jeminden öň gözlenýän setiriň galmagyny üpjün etmek galýar. Munuň üçin jemiň öňünde nol gapyň mazmunyny goýarys:

<?php $str = '2+3= 3+5= 7+8='; $res = preg_replace_callback('#(\d+)\+(\d+)=#', function($match) { return $match[0] . ($match[1] + $match[2]); }, $str); echo $res; // '2+3=5 3+5=8 7+8=13' çykarar ?>

Setir berlen:

<?php $str = 'The numbers are 3, 7 and 12'; ?>

Setirdäki ähli sanlary olaryň kwadratlary bilen çalşyryň.

Gözlenilýän netije:

'The numbers are 9, 49 and 144'

Setir berlen:

<?php $str = '2023-01-15 2022-12-31 2024-05-20'; ?>

Ähli seneleri gün. aý. ýyl formatyna öwüriň.

Setir berlen:

<?php $str = 'Costs: $15, $20, $100'; ?>

Ähli bahalary 10% köpeltiň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et