《PHP實戰:PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)》要點:
本文介紹了PHP實戰:PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等),希望對您有用。如果有疑問,可以聯系我們。
PHP教程本文實例講述了PHP正則表達式基本用法.分享給大家供大家參考,具體如下:
PHP教程Demo1.php
PHP教程
<?php
//嘗試著寫第一個正則表達式
//第一個參數,表示模式(就是和字符串去比較,匹配)
//第二個參數,表示字符串
//如果整個函數模式和字符串比較后匹配了,那么返回真(true)1,否則返回假(false)0
//什么叫匹配,就是一個一個的比較過去
//按照什么規則??按照模式來匹配
//只要模式全部通過,那么就通過
//匹配和相等是兩個概念
//因為目前的模式是一個整體,php
//所以,字符串只要有連在一起的 php 三個字符,不管怎樣的字符串都能匹配
$mode = '/php/'; //規則模式
$string = 'fsdfsdfsdphpfsdfs'; //字符串
//echo preg_match($mode,$string);
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
//echo preg_match('/php/','php');
// if('a'=='a'){
// echo '相等';
// }else {
// echo '不相等';
// }
?>
PHP教程Demo2.php
PHP教程
<?php
//什么叫前導,前面的一個字符
//+ 號的前導字符就是 h
//h+ 的意思是,至少包含一個 h
//+ 號的意思
//$mode = '/ph+p/'; //規則模式
//h* 的意思是,零個或者多個 h
//* 號雖然可以是零個,但是前導字符不能更改,更改了,就不匹配了
//$mode = '/ph*p/'; //規則模式
//h? 的意思是,零個或者一個 h
//? 多個前導字符不行
//$mode = '/ph?p/'; //規則模式
//.的意思是,任意一個字符,所以,兩個點,就是任意兩個字符
//$mode = '/p.p/'; //規則模式
//.* 表示前導任意字符,并且零個或者多個
//$mode = '/p.*p/'; //規則模式
//h{3} 表示,前導必須是3 個,
//$mode = '/ph{3}p/'; //規則模式
//h{3,5}表示,前導必須是 3 到 5 個
//$mode = '/ph{3,5}p/'; //規則模式
//h{3,} 表示,前導至少 3 個 h
//$mode = '/ph{3,}p/'; //規則模式
//$符號,一般加在模式的字符串尾巴上
//表示從尾巴開始匹配
//$mode = '/php$/'; //規則模式
//^表示,從開頭進行匹配
//$mode = '/^php/'; //規則模式
//^ 和 $ 一起用的,基本上不要用正則了,直接用 == 號即可
//$mode = '/^php$/'; //規則模式
//| 是一個條件選擇符,如果有其中一個,即可匹配.
//$mode = '/php|asp/'; //規則模式
//()
$mode = '/(this) (is) (php|asp)/'; //規則模式
$string = 'this is php'; //字符串
//echo preg_match($mode,$string);
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
?>
PHP教程Demo3.php
PHP教程
<?php
//元子符
//[]中括號,是一種正則里的語法
//里面的東西表示任意一個即可
//[a-z] 表示 26 個字母中,隨便其中一個
//$mode = '/[a-z]/'; //規則模式
//[0-9] 表示 0-9,隨便其中一個
//$mode = '/[0-9]/'; //規則模式
//[asv] 其中一個
//$mode = '/[asv]/'; //規則模式
//[a-zA-Z0-9_] 表示其中一個匹配 [a-zA-Z0-9_] 中的任意一個
//$mode = '/[a-zA-Z0-9_]/'; //規則模式
//不是在開頭匹配行首的^,而是中括號里的 ^
//[^] 表示匹配除了abc 外都能匹配的字符串
//$mode = '/[^abc]/'; //規則模式
//為了讓人們使用更加的方便,\w 代表 [a-zA-Z0-9_]
//$mode = '/[\w]/'; //規則模式
//\W 正好和 \w相反
//$mode = '/[\W]/'; //規則模式
//\d 和 [0-9] 一樣
//$mode = '/\d/'; //規則模式
//\D 和 [^0-9] 一樣
//$mode = '/\D/'; //規則模式
//\s匹配任何空白字符
//$mode = '/\s/'; //規則模式
//\S不包含空白字符
//$mode = '/\S/'; //規則模式
//\b表示到達了單詞的邊界,如果沒有到達就不匹配,邊界可以理解為空格
//$mode = '/php\b/'; //規則模式
//\B 表示沒有到達邊界
//$mode = '/php\B/'; //規則模式
//因為 + 號是正則里的特殊字符
//如果要匹配特殊字符的話,必須加上 \
$mode = '/p\+p/'; //規則模式
$string = 'p+p'; //字符串
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
?>
PHP教程Demo4.php
PHP教程
<?php
//修飾符
//修飾符放在 // 的外面
//i 表示不區分大小寫
// $mode = '/php/i'; //規則模式
// $string = 'PHP'; //字符串
//m 表示匹配首尾的時候,如果遇到換行,也應該承認是結尾
// $mode = '/php$/m'; //規則模式
// $string = "this is a php\n ,is goods"; //字符串
//x 表示忽略掉規則模式中的空白字符
// $mode = '/php/x'; //規則模式
// $string = 'ph p'; //字符串
//A 表示必須從頭開始匹配
$mode = '/php/A'; //規則模式
$string = 'phpfsdfd'; //字符串
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
?>
PHP教程Demo5.php
PHP教程
<?php
//搜索數組中的相匹配的字符串
//preg_grep() 函數
$language = array('php','asp','jsp','python','ruby');
//找出最流行的 3p 語言
//這三門語言的匹配共同點是什么,最后結尾都是 p
//結尾匹配 p /p$/
//$mode = '/p$/';
//打印出開頭為 p 的語言
$mode = '/^p/';
//python 蟒蛇語言,在國外有取代 PHP 的傳聞
print_r(preg_grep($mode,$language));
?>
PHP教程Demo6.php
PHP教程
<?php
//搜索模式,最后返回的是真或者是假,1,10
echo preg_match('/php[1-6]/','php5');
?>
PHP教程Demo7.php
PHP教程
<?php
//電子郵件的小案例
//通過拆分的方法分組
$mode = '/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/';//模式不能缺少
$string = 'oneStopWeb@163.com';
if(preg_match($mode,$string)){
echo '電子郵件合法';
}else{
echo '電子郵件不合法';
}
?>
PHP教程Demo8.php
PHP教程
<?php
//匹配全局正則
//將字符串的所有匹配得到的結果放到一個數組變量里
preg_match_all('/php[1-5]/','php5fsdfsdphp6fsdfsdfphp4',$out);
print_r($out);//Array ( [0] => Array ( [0] => php5 [1] => php4 ) )
echo $out[0][0];//php5
?>
PHP教程Demo9.php
PHP教程
<?php
//定界定則
echo preg_quote('PHP is $150'); //PHP is \$150
?>
PHP教程Demo10.php
PHP教程
<?php
//搜索匹配的結果,然后替換掉
//第一個參數,存的是正則模式
//第二參數,放的是替換掉的字符串
//第二個參數,字符
//將第三個參數的字符串的 php5,php6 替換成了 oneStopWeb
echo preg_replace('/php[1-6]/','oneStopWeb','This is a php5,This is a php6');
//This is a oneStopWeb,This is a oneStopWeb
?>
PHP教程Demo11.php
PHP教程
<?php
//貪婪和分組獲取的案例,ubb
//我要將這個 [b][/b] 換成 <strong></strong>
//注意一個問題,這個時候的 [] 中括號,是字符串的括號,而不是語法[a-z]
//. 表示匹配任意字符一個,加上一個 * 號表示匹配零個或者多個
//用括號分為三組,那么第一組就是\1,第二組就是\2,第三組就是\3
//目前只有1 組,\1
//第一問題,第一個[b]和最后一個[/b]匹配了
//解決貪婪匹配.
$mode = '/(\[b\])(.*)(\[\/b\])/U';//U 禁止貪婪
$replace = '<strong>\2</strong>';
$string = 'This is a [b]php5[/b],This is a [b]php6 [/b]';
//echo $string;
echo preg_replace($mode,$replace,$string);
?>
PHP教程Demo12.php
PHP教程
<?php
//用正則表達來進行分割
//如果沒有 [] 符號,就表示,要同時滿足
print_r(preg_split('/[.@]/','oneStopWeb@163.com'));
//Array ( [0] => oneStopWeb [1] => 163 [2] => com )
?>
PHP教程PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
PHP教程JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
PHP教程正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
PHP教程更多關于PHP相關內容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
PHP教程希望本文所述對大家PHP程序設計有所幫助.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3917.html