最近看到一段代碼:
"; ?>
上網查了不少資料,但對於phpRegex中的模式修正符u實在有些不明白,求解啊……
回複討論(解決方案)
u :unicode 的縮寫,表示待匹配的串是一個符合 unicode 編碼規則的串,比如 utf-8 編碼的串
在 u 修飾符下,一個漢字被當做一個字元被處理。\w 有原來的 [_0-9A-Za-z] 擴充到漢字
\w 由原來的 [_0-9A-Za-z] 擴充到漢字,
\w是匹配任意一個數字、字母、底線的,擴充到漢字是什麼意思?
$s = '漢字abc';preg_match_all('/\w/', $s, $r); //沒有 u 修飾print_r($r);得
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
)
$s = '漢字abc';preg_match_all('/\w/u', $s, $r); //有 u 修飾print_r($r);得
Array
(
[0] => Array
(
[0] => 漢
[1] => 字
[2] => a
[3] => b
[4] => c
)
)
$s = '漢字abc';preg_match_all('/\w/', $s, $r); //沒有 u 修飾print_r($r);得
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
)
$s = '漢字abc';preg_match_all('/\w/u', $s, $r); //有 u 修飾print_r($r);得
Array
(
[0] => Array
(
[0] => 漢
[1] => 字
[2] => a
[3] => b
[4] => c
)
)
版主大大 寫個適合新手學習的正則吧。
還有.net的正則和php的正則區別大嗎?
http://deerchao.net/tutorials/regex/regex.htm
這個人寫的.net通俗易懂 ,求版主大大同樣來個。。。
感謝版主,明白了……