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

王林
王林asal
2023-06-22 09:16:393695semak imbas

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

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];

Hasil output ialah:

  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];

Hasil output ialah:

中文编程真有意思
  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];

Hasil output ialah:

中文AI编程真有意思123

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];

Hasil keluarannya ialah:

中文编程真有意思

    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]);

Hasil output ialah:

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

    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;

Hasil keluaran ialah:

,使我快乐!

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!

Kenyataan:
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