1. 程式人生 > >[正則表達式]匹配Unicode

[正則表達式]匹配Unicode

處理 unicode match 表達式 pcr ons script 支持 匹配

一、PHP[PCRE]之Unicode

PCRE支持的16進制字符編碼轉義符有

\x00-\xFF,或\x{num},num為任意位16進制數

但並不支持\u0000-\uFFFF這的形式

PCRE運用/u模式去處理UTF-8編碼字符,這是PCRE特有的,示例代碼

$str = ‘中asfdsf個業上‘;
$pattern = ‘/[\x{4E10}-\x{4E2F}\x{4E0A}]/u‘;
$matchs = array();
$result = preg_match_all($pattern, $str, $matchs);
var_dump($result, $matchs);

示例中“中個業上”將會被匹配,因為字符組中\x{4E10}-\x{4E2F}匹配了“中個業”所在的Unicode區間,\x{4E0A}對應的是“上”;

二、JavaScript

JavaScript支持的16進制字符編碼轉義符有

\x00-\xFF, \u0000-\uFFFF

示例代碼

var str = "中asfdsf個業上";
var regExp = /[\u4E10-\u4E2F\u4E0A]/g;
console.log(str.match(regExp));

示例中“中個業上”將會被匹配,原因同上;

[正則表達式]匹配Unicode