正則匹配 模式修正符 小寫u的問題 php
最近看到一段**:
$str='你好,世界dd';
preg_match_all('/./us',$str,$match);
echocount($match[0])."
";?>
上網查了不少資料,但對於php正規表示式中的模式修正符u實在有些不明白,求解啊……
分享到: 更多
------解決方案--------------------
u:unicode的縮寫,表示待匹配的串是乙個符合unicode編碼規則的串,比如utf-8編碼的串
在u修飾符下,乙個漢字被當做乙個字元被處理。\w有原來的[_0-9a-za-z]擴充套件到漢字
------解決方案--------------------
$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的正則區別大嗎?
正規表示式模式修正符
php正規表示式 i,is,s,isu等 都是些什麼東西呢?1 正規表示式運算順序 圓括號因為是記憶體處理所以最高 重複匹配內容其次 b 邊界處理第三 條件處理第四 最後按照運算順序計算匹配 2 正規表示式模式修正符 i 正則內容在匹配時候不區分大小寫 預設是區分的 m 在匹配首內容或者尾內容時候採...
模式修正符 正規表示式
模式修正符是標記在整個正規表示式之外的,可以看著是對正規表示式的一些補充說明。常用的模式修正符如下 模式修正符說明i 模式中的字元將同時匹配大小寫字母 m字串視為多行 s將字串視為單行,換行符作為普通字元 x將模式中的空白忽略 epreg replace 函式在替換字串中對逆向引用作正常的替換,將其...
正規表示式模式修正符
下面列出了當前在 pcre 中可能使用的修正符。括號中是這些修正符的內部 pcre 名。修正符中的空格和換行被忽略,其它字元會導致錯誤。i pcre caseless 如果設定此修正符,模式中的字元將同時匹配大小寫字母。s pcre dotall 如果設定了此修正符,模式中的圓點元字元 匹配所有的字...