Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP
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
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:
中
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:
中文编程真有意思
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
$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:
中文编程真有意思
$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应用 )
$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 RingkasanDi 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!