首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 正則匹配中文漢字:GBK/UTF-8 編碼差異與實務模式

     編輯:PHP 相關知識

編碼決定模式

編碼漢字位元組範圍正則模式修飾符
GBK/GB2312雙位元組:0x81-0xFE/[\x80-\xFF]+/ 或 /[\xA1-\xFF]+/無
UTF-83-4 位元組:U+4E00-U+9FA5(基本漢字)/[\x{4e00}-\x{9fa5}]+/uu (PCRE_UTF8)

UTF-8 完整漢字範圍(含擴展區)

實務範例

1. 提取純中文文字

 學習 [1] => 是一件快樂的事 ) */

2. 判斷純中文字串

3. 中英混合分詞(簡易)

 PHP [1] => 程式設計語言 ) */

4. GBK 環境下的匹配(舊專案)

mb_ereg 系列函數(多位元組安全)

常見坑點

  • 忘記 u 修飾符:UTF-8 下不加 u 會按位元組匹配,導致錯誤結果。
  • 檔案編碼與模式不符:GBK 檔案用 UTF-8 模式會亂碼/失效。
  • 漢字範圍不足:僅用基本區會漏掉生僻字,視需求擴展至 \x{3400}-\x{9fa5}。
  • 正則效能:大量文字處理考慮 mb_strpos/mb_substr 或分詞庫(jieba-php)。

結語

UTF-8 專案統一用 /[\x{4e00}-\x{9fa5}]+/u(或擴展至 \x{3400}-\x{9fa5}),務必加 u 修飾符。GBK 舊專案用 /[\x80-\xFF]+/。判斷純中文用 ^...$ 錨點。現代專案建議統一 UTF-8,避免編碼地獄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved