从手册:
之后
\x
,最多读取两个十六进制数字(字母可以是大写或小写)。在 UTF-8 模式下,\x{...}
是允许的,其中大括号的内容是一串十六进制数字。它被解释为 UTF-8 字符,其代码编号是给定的十六进制数。如果值大于 127,则原始十六进制转义序列匹配两字节 UTF-8 字符。\xhh
那么这是什么意思?
“ä”的代码点是 E4,而 UTF-8 表示是 C3A4,但这些都不匹配:
$t = 'ä'; // same as "\xC3\xA4";
preg_match('/\\xC3A4/u', $t); // doesn't match
preg_match('/\\x00E4/u', $t); // doesn't match
当我给出代码点时,它确实匹配大括号:
preg_match('/\\x{00E4}/u', $t); // matches