Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP

Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP

王林
Lepaskan: 2023-06-22 09:54:02
asal
3699 orang telah melayarinya

Dalam PHP, ungkapan biasa ialah alat padanan rentetan yang biasa digunakan. Ia boleh digunakan untuk menentukan sama ada rentetan mematuhi format tertentu, dengan itu mengesahkan kesahihan nilai input. Apabila memproses aksara Cina, kerana aksara Cina dan aksara Inggeris dikodkan secara berbeza, peraturan padanan ungkapan biasa perlu dilaraskan dengan sewajarnya. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP.

1. Fahami pengekodan aksara Cina

Pengekodan aksara yang biasa digunakan dalam PHP ialah UTF-8 dan GBK. UTF-8 ialah "pengekodan panjang boleh ubah", iaitu aksara yang berbeza mempunyai panjang yang berbeza, dan 1 hingga 4 bait digunakan untuk mewakili aksara yang berbeza. GBK ialah "pengekodan panjang tetap" di mana setiap aksara diwakili oleh dua bait.

Disebabkan peraturan pengekodan UTF-8 yang kompleks, apabila memadankan aksara Cina, kami boleh menggunakan pengekodan GBK untuk pemadanan. Dalam PHP, anda boleh menggunakan fungsi mb_convert_encoding() untuk menukar rentetan daripada pengekodan UTF-8 kepada GBK, contohnya:

$str = "中文";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
Salin selepas log masuk

2 Padankan aksara Cina

  1. Padankan satu Aksara Cina

Untuk memadankan satu aksara Cina, anda boleh menggunakan ungkapan biasa [x{4e00}-x{9fa5}]. Di mana x mewakili aksara perenambelasan, {4e00} dan {9fa5} mewakili aksara pertama dan terakhir dalam set aksara Cina, iaitu "一" dan "饥" masing-masing.

Contoh kod:

$str = "中文";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]/u", $str_gbk, $match);
echo $match[0];
Salin selepas log masuk

Hasil output ialah:

Salin selepas log masuk
  1. Padankan berbilang aksara Cina

Untuk memadankan berbilang aksara Cina , anda boleh menambah pengkuantiti pada ungkapan biasa, contohnya * bermaksud memadankan sebarang bilangan aksara Cina, + bermaksud memadankan sekurang-kurangnya satu aksara Cina, {n,m} bermaksud memadankan n kepada m aksara Cina.

Contoh kod:

$str = "中文编程真有意思";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]{2,}/u", $str_gbk, $match);
echo $match[0];
Salin selepas log masuk

Hasil output ialah:

中文编程真有意思
Salin selepas log masuk
Salin selepas log masuk
  1. Padankan aksara Cina dan aksara lain

Untuk memadankan dalam rentetan Untuk memadankan aksara Cina dan aksara lain pada masa yang sama, anda boleh menggunakan [x{4e00}-x{9fa5}] dan [w] (padan mana-mana aksara atau nombor) untuk memadankan rentetan, contohnya:

Contoh kod:

$str = "中文AI编程真有意思123";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}w]+/u", $str_gbk, $match);
echo $match[0];
Salin selepas log masuk

Hasil output ialah:

中文AI编程真有意思123
Salin selepas log masuk

3 Fungsi ungkapan biasa yang biasa digunakan

  1. preg_match()
<🎜. >preg_match() Fungsi digunakan untuk melakukan padanan ungkapan biasa pada rentetan dan mengembalikan hasil padanan atau FALSE.

Sintaks: preg_match(rentetan $pattern, rentetan $subjek [, tatasusunan &$padanan [, int $flags = 0 [, int $offset = 0]]])

Kod sampel:

$str = "中文编程真有意思";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match);
echo $match[0];
Salin selepas log masuk

Hasil keluarannya ialah:

中文编程真有意思
Salin selepas log masuk
Salin selepas log masuk

    preg_match_all()
fungsi preg_match_all() digunakan untuk mencari semua ungkapan biasa dalam rentetan Padanan keputusan, mengembalikan tatasusunan yang terdiri daripada semua hasil yang sepadan.

Sintaks: preg_match_all(rentetan $pattern, rentetan $subjek [, tatasusunan &$padanan [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0]]])

Kod contoh:

$str = "PHP是一门非常有用的编程语言,可以用来开发各种Web应用";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match);
print_r($match[0]);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => PHP是一门非常有用的编程语言
    [1] => 可以用来开发各种Web应用
)
Salin selepas log masuk

    preg_replace()
fungsi preg_replace() digunakan untuk mencari dan menggantikan rentetan menggunakan ungkapan biasa .

Sintaks: preg_replace(campuran $corak, campuran $replacement, campuran $subjek [, int $limit = -1 [, int &$count]])

Kod sampel:

$str = "我爱编程,编程使我快乐!";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
$new_str_gbk = preg_replace("/[x{4e00}-x{9fa5}]+/", "", $str_gbk);
$new_str = mb_convert_encoding($new_str_gbk, "UTF-8", "GBK");
echo $new_str;
Salin selepas log masuk

Hasil keluaran ialah:

,使我快乐!
Salin selepas log masuk
IV Ringkasan

Di atas ialah kaedah menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP daripada nilai input dilaksanakan. Apabila menggunakannya, anda perlu memberi perhatian kepada kaedah pengekodan aksara Cina, dan pilih fungsi ungkapan biasa yang sepadan untuk digunakan mengikut keperluan.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam 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