Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php

青灯夜游
Lepaskan: 2023-03-16 21:16:01
asal
4453 orang telah melayarinya

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)".

Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php

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);
?>
Salin selepas log masuk

Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php

Nilai hasil kemudiannya boleh disambungkan ke dalam rentetan menggunakan fungsi join().

join(&#39;&#39;,$arr[0])
Salin selepas log masuk

Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php

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)
Salin selepas log masuk

Penerangan parameter adalah seperti berikut:

  • corak: corak yang akan dicari, iaitu ungkapan biasa yang ditakrifkan ;
  • subjek: rentetan yang hendak dicari;
  • padanan: parameter pilihan (tatasusunan berbilang dimensi), digunakan untuk menyimpan semua hasil yang sepadan, pengisihan tatasusunan ditentukan oleh
  • bendera: Parameter pilihan, boleh digunakan dalam kombinasi dengan bendera berikut (perhatikan bahawa PREG_PATTERN_ORDER dan PREG_SET_ORDER tidak boleh digunakan pada masa yang sama):
    • PREG_PATTERN_ORDER: Keputusan diisih mengikut $matches[0] untuk simpan semua padanan corak lengkap, $matches[ 1] Simpan semua padanan subkumpulan pertama, dan seterusnya.
    • PREG_SET_ORDER: Keputusan diisih sebagai $matches[0] mengandungi semua padanan (termasuk subkumpulan) yang diperoleh pada perlawanan pertama, $matches[1] mengandungi semua padanan (termasuk subkumpulan) yang diperolehi oleh perlawanan kedua ), dan seterusnya.
    • PREG_OFFSET_CAPTURE: Jika bendera ini diluluskan, setiap padanan yang ditemui dikembalikan dengan mengimbanginya berbanding dengan rentetan sasaran dinaikkan. Ambil perhatian bahawa ini akan menukar setiap elemen rentetan padanan dalam $matches menjadi satu dengan elemen ke-0 ialah rentetan padanan dan elemen pertama ialah offset rentetan padanan dalam subjek.
  • offset: Parameter pilihan, $offset digunakan untuk mula mencari dari kedudukan yang ditentukan dalam rentetan sasaran (unit ialah bait).

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)
Salin selepas log masuk
  • 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 &#39;&#39;.

<?php
header("Content-type:text/html;charset=utf-8");
$str= &#39;php中文网!-=1548&#39;;
echo $str."<br>";
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
$newstr=preg_replace($pattern,&#39;&#39;, $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);
var_dump($newstr);
?>
Salin selepas log masuk

Bagaimana untuk mengekstrak hanya aksara Cina daripada rentetan php

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]])
Salin selepas log masuk

Penerangan parameter adalah seperti berikut:

  • $pattern: corak yang hendak dicari, yang boleh menjadi rentetan atau tatasusunan rentetan; Jika hujah ini ialah rentetan dan $pattern ialah tatasusunan, maka semua corak digantikan dengan rentetan ini. Jika $pattern dan $replacement adalah kedua-dua tatasusunan, setiap $pattern digantikan dengan elemen yang sepadan dalam $replacement. Jika terdapat kurang elemen dalam $replacement berbanding $pattern, $pattern tambahan digantikan dengan rentetan kosong.
  • $subject: Tatasusunan rentetan atau rentetan yang akan dicari dan digantikan Jika $subject ialah tatasusunan, carian dan penggantian akan dilakukan pada setiap elemen $subjek, dan nilai pulangan juga akan menjadi satu tatasusunan. .
  • $limit: Parameter pilihan, bilangan maksimum penggantian bagi setiap corak pada setiap $subjek. Lalai ialah -1 (tidak terhad).
  • $count: parameter pilihan, jika dinyatakan, akan diisi dengan bilangan penggantian yang lengkap.
  • Jika $subject ialah tatasusunan, fungsi preg_replace() akan mengembalikan tatasusunan, jika tidak ia akan mengembalikan rentetan.

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 PHP

"

Atas 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan