⊗ppPmRgESCh 226 of 447 menu

Escape Karakter Khusus dalam Regex PHP

Anggaplah kita ingin membuat karakter khusus mewakili dirinya sendiri. Untuk itu karakter tersebut perlu di-escape menggunakan backslash. Mari kita lihat contohnya.

Contoh

Dalam contoh berikut, penulis regex menginginkan pola pencarian terlihat seperti: huruf 'a', lalu tanda plus '+', lalu huruf 'x'. Namun, penulis kode tidak meng-escape karakter '+' sehingga pola pencarian sebenarnya terlihat seperti: huruf 'a' satu kali atau lebih, kemudian huruf 'x':

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

Hasilnya, yang tersimpan di variabel adalah sebagai berikut:

'a+x ! ! !'

Contoh

Sekarang penulis meng-escape tanda plus dengan backslash. Sekarang pola pencarian terlihat seperti yang diinginkan: huruf 'a', lalu tanda plus '+', lalu huruf 'x'.

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

Hasilnya, yang tersimpan di variabel adalah sebagai berikut:

'! ax aax aaax'

Contoh

Dalam contoh ini, polanya terlihat seperti: huruf 'a', lalu titik '.', lalu huruf 'x':

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

Hasilnya, yang tersimpan di variabel adalah sebagai berikut:

'! abx azx'

Contoh

Dalam contoh berikutnya, penulis lupa meng-escape slash dan regex mencocokkan semua substring, karena titik yang tidak di-escape mewakili karakter apa pun:

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

Hasilnya, yang tersimpan di variabel adalah sebagai berikut:

'! ! !'

Contoh

Perhatikan bahwa jika Anda lupa backslash untuk titik (ketika seharusnya ia mewakili dirinya sendiri) - hal ini mungkin tidak terlihat:

<?php preg_replace('#a.x#', '!', 'a.x'); // mengembalikan '!', seperti yang kita inginkan ?>

Secara visual berjalan dengan benar (karena titik mewakili karakter apa pun, termasuk titik biasa '.'). Tetapi jika string yang diganti diubah - kita akan melihat kesalahan kita:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // mengembalikan '! ! !', sedangkan yang diharapkan '! abx azx' ?>
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak