php正则表达式定界符之后加上一个小写的u有什么作用?

<?php
$tmp = @iconv('gbk', 'utf-8', 'dawn生');
if(!empty($tmp)){
$str = $tmp;
}
preg_match_all('/./u', $str, $match);
echo count($match[0]);
?>

第1个回答  2013-05-04
你这里的u是小写的吧。
u(PCRE_UTF8)
  此修正符启用了一个 PCRE 中与 Perl
不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3
起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。本回答被提问者采纳
第2个回答  2013-05-04
U表示不要贪婪匹配i表示不区分大小写

比如说
$str = "<Div>第一</div><Div>第二</div>";
$p = "~<div>.*</div>~Ui";
?
? preg_match($p,$str,$arr);
echo $arr[0];?
?
你如果不加U 就输出 "<Div>第一</div><Div>第二</div>"
加了 就输出 "<Div>第一</div>"
如果不加i就匹配不上 因为<Div>中d是大写本回答被网友采纳
第3个回答  2013-05-04
统计字数的吧。u指的是utf8