php中ereg() ,preg_match() 有啥区别?手册上写,“注: 使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案。”既然preg_match更好,那要ereg何用?
PHP中几个正则函数的用法及区别函数用法:preg_match(mode, string subject, array matches); 相比ereg更加规范,执行效率越高ereg(mode, string subject, array regs);mode:正则表达式(preg_match中的mode必须以’/'开始和“/”结束)subject: 需要验证的字符串matchs/regs: 匹配后得到的结果。以数组的形式存储preg_match和 preg_match_all区别是preg_match只匹配一次。而preg_match_all全部匹配,直到字符串结束。 示例如下:<?php$date = date(‘Y-m-d’);//ereg函数ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$rs);var_dump($rs);unset($rs);echo "—————————————–<br>";//preg_match函数preg_match("/([\d]{4})-([\d]{1,2})-([\d]{1,2})/",$date.$date,$rs);var_dump($rs);unset($rs);echo "—————————————–<br>";//preg_match_all函数preg_match_all("/([\d]{4})-([\d]{1,2})-([\d]{1,2})/",$date.$date,$rs);var_dump($rs);?>如下输出:array(4) { [0]=> string(10) "2012-08-20" [1]=> string(4) "2012" [2]=> string(2) "08" [3]=> string(2) "20"}—————————————–array(4) { [0]=> string(10) "2012-08-20" [1]=> string(4) "2012" [2]=> string(2) "08" [3]=> string(2) "20"}—————————————–array(4) { [0]=> array(2) { [0]=> string(10) "2012-08-20" [1]=> string(10) "2012-08-20" } [1]=> array(2) { [0]=> string(4) "2012" [1]=> string(4) "2012" } [2]=> array(2) { [0]=> string(2) "08" [1]=> string(2) "08" } [3]=> array(2) { [0]=> string(2) "20" [1]=> string(2) "20" }}PHP中如何用正则函数来验证中文字符串验证中文字符串正则表达式为: /^[\x{4e00}-\x{9fa5}]+$/u方法如下:$str = "个人博客";if(preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)){echo ‘皆为中文’;}else{echo ‘不完全是中文’;}