Tanda Sempang dalam Set Tanda Kurung Ungkapan Biasa JavaScript
Tanda sempang - juga aksara khas di dalam [ ]
(tetapi di luar - tidak). Jika anda memerlukan tanda sempang
itu sendiri sebagai aksara - letakkannya di mana
ia tidak akan difahami sebagai pemisah
kumpulan.
Mengapa ini penting: anda mungkin membuat kumpulan
aksara, tanpa menyedarinya. Sebagai contoh,
seperti ini - '[:-@]' - anda fikir, anda
memilih tanda titik bertindih, tanda sempang dan tanda @,
tetapi sebenarnya yang terhasil ialah kumpulan aksara antara
: dan @. Kumpulan ini termasuk
aksara berikut: ? < = > : ;
Dari mana ia datang? Dari jadual ASCII - tanda titik bertindih mempunyai nombor yang lebih kecil daripada tanda @ - dan terhasilnya kumpulan. Maksudnya semua kumpulan terhasil mengikut jadual ASCII (jika mahu, ini boleh digunakan).
Bagaimana menanganinya: letakkan aksara tanda sempang
di mana ia pasti tidak akan difahami sebagai
aksara kumpulan, contohnya, pada permulaan atau pada akhir
(iaitu selepas [ atau sebelum ]).
Anda juga boleh melarikan tanda sempang - maka
ia akan mewakili dirinya sendiri tanpa mengira
kedudukan. Sebagai contoh, gantikan [:-@] dengan
[:\-@] - dan kumpulan sudah tidak wujud,
sebaliknya terdapat tiga aksara - tanda titik bertindih, tanda sempang dan tanda
@.
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
digit 1, kemudian huruf dari 'a'
hingga 'z', kemudian digit 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! 1-2 ! !'
Contoh
Sekarang mari kita lari tanda sempang. Hasilnya
corak carian adalah seperti berikut: digit 1, kemudian
huruf 'a', atau tanda sempang, atau huruf 'z',
kemudian digit 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! ! 1c2 !'
Contoh
Anda boleh hanya mengubah kedudukan tanda sempang, tanpa melarikan:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! ! 1c2 !'
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
aksara pertama - ialah huruf kecil atau
tanda sempang '-', kemudian dua huruf 'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! Axx ! @xx'
Contoh
Dalam contoh berikut, corak carian adalah seperti berikut:
aksara pertama - ialah huruf kecil, huruf besar
atau tanda sempang '-', kemudian dua huruf
'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! ! ! @xx'
Contoh
Anda boleh meletakkan tanda sempang antara dua kumpulan - di sana ia pasti tidak akan membuat satu lagi kumpulan:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
Hasilnya, yang berikut akan direkodkan ke dalam pembolehubah:
'! ! ! @xx'
Masalah Praktikal
Diberi rentetan:
let str = 'xaz xBz xcz x-z x@z';
Cari semua rentetan mengikut corak berikut:
huruf 'x', huruf besar atau kecil
atau tanda sempang, huruf 'z'.
Diberi rentetan:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
Cari semua rentetan mengikut corak berikut:
huruf 'x', kemudian tanda dolar, atau
tanda sempang atau tanda tambah, kemudian huruf 'z'.