Dua kaedah: 1. Gunakan preg_match_all() dengan rentetan penapis biasa, sintaksnya ialah "preg_match_all("/[x{4e00}-x{9fff}] /u","$str",$arr );"; 2. Gunakan preg_replace() dengan ungkapan biasa untuk mencari huruf bukan Cina dalam rentetan dan menggantikannya dengan aksara kosong. Sintaksnya ialah "preg_replace("/[^x{4E00}-x{9FFF}] /u" ,'',$str)".
Persekitaran pengendalian tutorial ini: sistem windows7, PHP versi 8.1, komputer DELL G3
Dalam php, anda boleh menggunakan dua yang berikut fungsi Untuk mengekstrak hanya aksara Cina bagi rentetan
fungsi preg_replace()
fungsi preg_match_all()
Kaedah 1: Gunakan fungsi preg_match_all()
fungsi preg_match_all() dengan ungkapan biasa "/[x{4e00}-x{9fff}] /u
" untuk menapis rentetan dan hanya mendapatkan aksara Cina.
akan menyimpan aksara Cina yang sepadan ke dalam tatasusunan satu demi satu (tatasusunan ditentukan oleh parameter ketiga).
<?php header("Content-type:text/html;charset=utf-8"); $str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^"; echo $str; preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr); var_dump($arr); ?>
Nilai hasil kemudiannya boleh disambungkan ke dalam rentetan menggunakan fungsi join().
join('',$arr[0])
Penjelasan:
1) fungsi preg_match_all()
fungsi preg_match_all() akan mencari Semua hasil dalam rentetan yang boleh sepadan dengan ungkapan biasa
preg_match_all(pattern,subject,matches,flags,offset)
Penerangan parameter adalah seperti berikut:
Fungsi preg_match_all() boleh mengembalikan bilangan padanan untuk corak (mungkin 0), atau FALSE jika ralat berlaku.
2) fungsi join()
fungsi join() mengembalikan rentetan yang terdiri daripada elemen tatasusunan.
fungsi join() ialah alias bagi fungsi implode().
join(separator,array)
pemisah: Pilihan. Menentukan apa yang diletakkan di antara elemen tatasusunan. Lalai ialah "" (rentetan kosong).
tatasusunan: diperlukan. Tatasusunan untuk digabungkan menjadi rentetan.
Nilai pulangan: Mengembalikan rentetan yang terdiri daripada elemen tatasusunan.
Kaedah 2: Gunakan fungsi preg_replace()
fungsi preg_match_all() untuk memadankan ungkapan biasa "/[^x{4E00}-x{9FFF}] /u
" dalam carian rentetan Huruf bukan Cina boleh digantikan dengan aksara kosong ''
.
<?php header("Content-type:text/html;charset=utf-8"); $str= 'php中文网!-=1548'; echo $str."<br>"; $pattern = "/[^\x{4E00}-\x{9FFF}]+/u"; $newstr=preg_replace($pattern,'', $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr); var_dump($newstr); ?>
Penerangan: preg_replace()
Fungsi preg_replace() boleh melakukan carian dan penggantian ungkapan biasa, ya A fungsi pemprosesan penggantian rentetan yang berkuasa Format sintaks fungsi ini adalah seperti berikut:
preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
Penerangan parameter adalah seperti berikut:
Jika fungsi preg_replace() menemui padanan, ia akan mengembalikan $subjek yang diganti, jika tidak ia akan mengembalikan $subjek yang tidak berubah. Setiap parameter fungsi preg_replace() (kecuali parameter $limit) boleh menjadi tatasusunan. Jika parameter $pattern dan parameter $replacement adalah kedua-dua tatasusunan, fungsi akan memproses kekunci mengikut susunan ia muncul dalam tatasusunan. Jika ralat berlaku, NULL dikembalikan.
Parameter $replacement boleh mengandungi rujukan belakang \n atau $n, dengan yang terakhir diutamakan secara sintaksis. Setiap rujukan tersebut akan digantikan dengan teks yang ditangkap oleh subkumpulan penangkapan ke-n yang telah dipadankan. n boleh menjadi 0-99, dengan \0 dan $0 mewakili teks padanan corak yang lengkap.
Pembelajaran yang disyorkan: "
Tutorial Video PHPAtas ialah kandungan terperinci Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!