UNICODE 修飾符

UNICODE 修飾符,通常表示為 u(PHP, Python)或 U(Java),使得正規表示式引擎將模式和輸入字串視為 Unicode 字串和模式,使模式簡寫類如\w\d\s 等。支援 Unicode 的。

/\A\p{L}+\z/u

是一個 PHP 正規表示式,用於匹配由 1 個或多個 Unicode 字母組成的字串。請參閱正規表示式演示

請注意,在 PHP 中/u 修飾符使 PCRE 引擎能夠將字串作為 UTF8 字串處理(通過開啟 PCRE_UTF8 動詞),並使用 Unicode 模式識別模式中的速記字元類(通過啟用 PCRE_UCP 動詞,請參閱 pcre.org 上的更多資訊 )。

**模式和主題字串被視為 UTF-8。**這個修飾符可以在 Unix 上從 PHP 4.1.0 或更高版本獲得,在 win32 上從 PHP 4.2.3 獲得。自 PHP 4.3.5 起,檢查模式和主題的 UTF-8 有效性。無效的主題將導致 preg_ *函式無匹配; 無效模式將觸發級別 E_WARNING 的錯誤。自 PHP 5.3.4 起,五和六個八位位元組的 UTF-8 序列被視為無效(分別為 PCRE 7.3 2007-08-28); 以前那些被認為是有效的 UTF-8。

在 Python 2.x 中, re.UNICODE 僅影響模式本身: 根據 Unicode 字元屬性資料庫生成\w\W\b\B\d\D\s\S

內聯版本:Python 中的 (?u),Java 中的 (?U)。例如:

print(re.findall(ur"(?u)\w+", u"Dąb")) # [u'D\u0105b']
print(re.findall(r"\w+", u"Dąb"))      # [u'D', u'b']

System.out.println("Dąb".matches("(?U)\\w+")); // true
System.out.println("Dąb".matches("\\w+"));     // false