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

精準匹配 UTF-8 中文:PHP 正則表達式最佳寫法

     編輯:PHP 相關知識

精準匹配 UTF-8 中文:PHP 正則表達式最佳寫法

許多開發者習慣用 [\x7f-\xff]+ 匹配中文,但這會誤匹配歐洲擴展字符。正確做法是使用 Unicode 碼點範圍,並加上 u 修飾符啟用 UTF-8 模式。

錯誤寫法(會匹配到非中文字符)

preg_match('~[\x7f-\xff]+~is', $string, $matches);

正確寫法(僅匹配 CJK 統一表意文字基本區)

preg_match('~[\x{4e00}-\x{9fa5}]+~u', $string, $matches);

關鍵點解析

  • \x{4e00}-\x{9fa5}:Unicode 中日韓統一表意文字基本區範圍(約 2 萬常用漢字)。
  • u 修飾符:強制 PCRE 以 UTF-8 模式解析模式與目標字串,否則 \x{...} 會報錯或匹配錯誤。

擴展:匹配更多中文字符

若需包含擴展區(如生僻字、康熙字典字符),可擴展範圍:

// 基本區 + 擴展 A 區
~[\x{4e00}-\x{9fa5}\x{3400}-\x{4dbf}]+~u

實用範例:提取純中文

$str = "Hello 世界 123 你好!";
preg_match_all('~[\x{4e00}-\x{9fa5}]+~u', $str, $matches);
print_r($matches[0]);
// 輸出: Array ( [0] => 世界 [1] => 你好 )
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved