Simbol Topi Dalam Set Dalam Regex PHP
Seperti yang anda tahu, topi di dalam [] membuat
penafian, jika ditulis pada permulaan kurungan.
Ini bermakna ia adalah aksara khas di dalam
kurungan ini. Untuk mendapatkan topi sebagai aksara,
perlu sama ada melarikan diri (escape) dengannya, atau mengalihkannya dari
kedudukan pertama.
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
aksara pertama adalah semua kecuali 'd',
kemudian dua huruf 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'! ! ! dxx'
Contoh
Dan sekarang corak carian adalah seperti berikut: aksara pertama
- adalah 'd' atau '^', kemudian dua
huruf 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'axx bxx ! !'
Contoh
Anda tidak perlu mengalihkan topi dari kedudukan pertama, cukup dengan melarikan diri (escape) menggunakan backslash (garis miring belakang), dan ia akan mewakili dirinya sendiri:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'axx bxx ! !'
Tugas Praktikal
Diberikan rentetan:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Tulis ungkapan biasa yang akan mencari rentetan mengikut corak: topi atau aksara @ (at), kemudian dua huruf Latin.
Diberikan rentetan:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Tulis ungkapan biasa yang akan mencari rentetan mengikut corak: BUKAN topi dan bukan aksara @ (at), kemudian dua huruf Latin.
Diberikan rentetan:
<?php
$str = '^xx axx ^zz bkk';
?>
Tulis ungkapan biasa yang akan mencari rentetan mengikut corak: BUKAN topi, kemudian dua huruf Latin.