Bagaimana saya boleh menggantikan semua simbol atau ruang dalam rentetan perkataan dengan "-"
Termasuk,? @%! $&*(apa sahaja)
學(xué)習(xí)是最好的投資!
Padankan dan gantikan aksara bukan abjad angka. w
termasuk _
Jika anda mahu menggantikan semuanya, tambah |[_]
. $result = preg_replace('/[^w]|[_]/', '「-」', $str);
匹配替換非字母數(shù)字并替換。w
包括_
,如果想一并替換掉,再添加上 |[_]
。
回評論:
如果想替換除中英文外的其他字符的話,pattern改為下列形式:/[^bA-Za-zx{4e00}-x{9fa5}]/u
b 表示空格;u4e00-u9fa5
是unicode里中文的表示法,但preg_replace不支持u
的寫法,可以使用 x{XXXX}
來替代;
最后使用u
/[^bA-Za-zx{4e00}-x{9fa5} ]/u
u4e00-u9fa5
ialah representasi bahasa Cina dalam unicode, tetapi preg_replace tidak menyokong kaedah penulisan u, anda boleh menggunakan x{XXXX}
;u
untuk menunjukkan bahawa set aksara utf-8 digunakan. ??preg_replace adalah satu kaedah, di sini saya menyediakan kaedah lain, lihat kod di bawah
$str = 'hello %abc?11';
$patten = array(
'【',
'】',
'「',
'?',
'%',
'&'
);
$rs = str_replace(' ','',str_replace($patten,'「-」',$str));
echo $rs;