⊗ppPmRgESCh 226 of 447 menu

PHP'de Düzenli İfadelerde Özel Karakterlerin Kaçışı

Diyelim ki bir özel karakterin kendisini temsil etmesini istiyoruz. Bunun için ters eğik çizgi kullanarak kaçış yapmamız gerekiyor. Haydi örneklerle görelim.

Örnek

Aşağıdaki örnekte, regex yazarı arama kalıbının şu şekilde olmasını istedi: 'a' harfi, sonra artı '+', sonra 'x' harfi. Ancak, kod yazarı '+' karakterini kaçırmadığı için arama kalıbı aslında şu şekilde: 'a' harfi bir veya daha fazla kez, sonra 'x' harfi:

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a+x#', '!', $str); ?>

Sonuç olarak değişkene aşağıdakiler yazılacaktır:

'a+x ! ! !'

Örnek

Şimdi ise yazar artı işaretini ters eğik çizgi ile kaçırdı. Artık arama kalıbı olması gerektiği gibi: 'a' harfi, sonra artı '+', sonra 'x' harfi.

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a\+x#', '!', $str); ?>

Sonuç olarak değişkene aşağıdakiler yazılacaktır:

'! ax aax aaax'

Örnek

Bu örnekte kalıp şu şekilde: 'a' harfi, sonra nokta '.', sonra 'x' harfi:

<?php $str = 'a.x abx azx'; $res = preg_replace('#a\.x#', '!', $str); ?>

Sonuç olarak değişkene aşağıdakiler yazılacaktır:

'! abx azx'

Örnek

Aşağıdaki örnekte yazar noktayı kaçırmayı unuttu ve regex tüm alt dizelere uydu, çünkü kaçırılmamış nokta herhangi bir karakteri temsil eder:

<?php $str = 'a.x abx azx'; $res = preg_replace('#a.x#', '!', $str); ?>

Sonuç olarak değişkene aşağıdakiler yazılacaktır:

'! ! !'

Örnek

Dikkat edin, eğer bir nokta için ters eğik çizgiyi unutursanız (kendisini temsil etmesi gerektiğinde) - bunu fark etmeyebilirsiniz bile:

<?php preg_replace('#a.x#', '!', 'a.x'); // '!' döndürür, istediğimiz gibi ?>

Görsel olarak doğru çalışıyor (çünkü nokta herhangi bir karakteri, sıradan bir '.' noktasını da temsil eder). Ancak eğer değişiklik yapılan dizgiyi değiştirirsek - hatamızı göreceğiz:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // '! ! !' döndürür, beklenen '! abx azx' idi ?>
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet