正則匹配 模式修正符 小寫u的問題 php

來源:互聯網
上載者:User
最近看到一段代碼:
";  ?>

上網查了不少資料,但對於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通俗易懂 ,求版主大大同樣來個。。。

感謝版主,明白了……

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.