php中ereg() ,preg_match() 與preg_match_all的區別?代碼詳細比較


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 ‘不完全是中文’;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM