欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)

 更新時間:2016年09月11日 11:20:19   作者:onestopweb  
這篇文章主要介紹了PHP入門教程之正則表達式基本用法,結(jié)合實例形式分析了正則表達式的結(jié)構(gòu)、原理及正則匹配、搜索、分割、元子符、修飾符等相關概念與操作技巧,需要的朋友可以參考下

本文實例講述了PHP正則表達式基本用法。分享給大家供大家參考,具體如下:

Demo1.php

<?php
 //嘗試著寫第一個正則表達式
 //第一個參數(shù),表示模式(就是和字符串去比較,匹配)
 //第二個參數(shù),表示字符串
 //如果整個函數(shù)模式和字符串比較后匹配了,那么返回真(true)1,否則返回假(false)0
 //什么叫匹配,就是一個一個的比較過去
 //按照什么規(guī)則??按照模式來匹配
 //只要模式全部通過,那么就通過
 //匹配和相等是兩個概念
 //因為目前的模式是一個整體,php
 //所以,字符串只要有連在一起的 php 三個字符,不管怎樣的字符串都能匹配
 $mode = '/php/'; //規(guī)則模式
 $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 '不相等';
// }
?>

Demo2.php

<?php
 //什么叫前導,前面的一個字符
 //+ 號的前導字符就是 h
 //h+ 的意思是,至少包含一個 h
 //+ 號的意思
 //$mode = '/ph+p/'; //規(guī)則模式
 //h* 的意思是,零個或者多個 h
 //* 號雖然可以是零個,但是前導字符不能更改,更改了,就不匹配了
 //$mode = '/ph*p/'; //規(guī)則模式
 //h? 的意思是,零個或者一個 h
 //? 多個前導字符不行
 //$mode = '/ph?p/'; //規(guī)則模式
 //.的意思是,任意一個字符,所以,兩個點,就是任意兩個字符
 //$mode = '/p.p/'; //規(guī)則模式
 //.* 表示前導任意字符,并且零個或者多個
 //$mode = '/p.*p/'; //規(guī)則模式
 //h{3} 表示,前導必須是3 個,
 //$mode = '/ph{3}p/'; //規(guī)則模式
 //h{3,5}表示,前導必須是 3 到 5 個
 //$mode = '/ph{3,5}p/'; //規(guī)則模式
 //h{3,} 表示,前導至少 3 個 h
 //$mode = '/ph{3,}p/'; //規(guī)則模式
 //$符號,一般加在模式的字符串尾巴上
 //表示從尾巴開始匹配
 //$mode = '/php$/'; //規(guī)則模式
 //^表示,從開頭進行匹配
 //$mode = '/^php/'; //規(guī)則模式
 //^ 和 $ 一起用的,基本上不要用正則了,直接用 == 號即可
 //$mode = '/^php$/'; //規(guī)則模式
 //| 是一個條件選擇符,如果有其中一個,即可匹配。
 //$mode = '/php|asp/'; //規(guī)則模式
 //()
 $mode = '/(this) (is) (php|asp)/'; //規(guī)則模式
 $string = 'this is php'; //字符串
 //echo preg_match($mode,$string);
 if( preg_match($mode,$string)){
 echo '匹配';
 }else{
 echo '不匹配';
 }
?>

Demo3.php

<?php
 //元子符
 //[]中括號,是一種正則里的語法
 //里面的東西表示任意一個即可
 //[a-z] 表示 26 個字母中,隨便其中一個
 //$mode = '/[a-z]/'; //規(guī)則模式
 //[0-9] 表示 0-9,隨便其中一個
 //$mode = '/[0-9]/'; //規(guī)則模式
 //[asv] 其中一個
 //$mode = '/[asv]/'; //規(guī)則模式
 //[a-zA-Z0-9_] 表示其中一個匹配 [a-zA-Z0-9_] 中的任意一個
 //$mode = '/[a-zA-Z0-9_]/'; //規(guī)則模式
 //不是在開頭匹配行首的^,而是中括號里的 ^
 //[^] 表示匹配除了abc 外都能匹配的字符串
 //$mode = '/[^abc]/'; //規(guī)則模式
 //為了讓人們使用更加的方便,\w 代表 [a-zA-Z0-9_]
 //$mode = '/[\w]/'; //規(guī)則模式
 //\W 正好和 \w相反
 //$mode = '/[\W]/'; //規(guī)則模式
 //\d 和 [0-9] 一樣
 //$mode = '/\d/'; //規(guī)則模式
 //\D 和 [^0-9] 一樣
 //$mode = '/\D/'; //規(guī)則模式
 //\s匹配任何空白字符
 //$mode = '/\s/'; //規(guī)則模式
 //\S不包含空白字符
 //$mode = '/\S/'; //規(guī)則模式
 //\b表示到達了單詞的邊界,如果沒有到達就不匹配,邊界可以理解為空格
 //$mode = '/php\b/'; //規(guī)則模式
 //\B 表示沒有到達邊界
 //$mode = '/php\B/'; //規(guī)則模式
 //因為 + 號是正則里的特殊字符
 //如果要匹配特殊字符的話,必須加上 \
 $mode = '/p\+p/'; //規(guī)則模式
 $string = 'p+p'; //字符串
 if( preg_match($mode,$string)){
 echo '匹配';
 }else{
 echo '不匹配';
 }
?>

Demo4.php

<?php
 //修飾符
 //修飾符放在 // 的外面
 //i 表示不區(qū)分大小寫
// $mode = '/php/i'; //規(guī)則模式
// $string = 'PHP'; //字符串
 //m 表示匹配首尾的時候,如果遇到換行,也應該承認是結(jié)尾
// $mode = '/php$/m'; //規(guī)則模式
// $string = "this is a php\n ,is goods"; //字符串
 //x 表示忽略掉規(guī)則模式中的空白字符
// $mode = '/php/x'; //規(guī)則模式
// $string = 'ph p'; //字符串
 //A 表示必須從頭開始匹配
 $mode = '/php/A'; //規(guī)則模式
 $string = 'phpfsdfd'; //字符串
 if( preg_match($mode,$string)){
 echo '匹配';
 }else{
 echo '不匹配';
 }
?>

Demo5.php

<?php
 //搜索數(shù)組中的相匹配的字符串
 //preg_grep() 函數(shù)
 $language = array('php','asp','jsp','python','ruby');
 //找出最流行的 3p 語言
 //這三門語言的匹配共同點是什么,最后結(jié)尾都是 p
 //結(jié)尾匹配 p /p$/
 //$mode = '/p$/';
 //打印出開頭為 p 的語言
 $mode = '/^p/';
 //python 蟒蛇語言,在國外有取代 PHP 的傳聞
 print_r(preg_grep($mode,$language));
?>

Demo6.php

<?php
 //搜索模式,最后返回的是真或者是假,1,10
 echo preg_match('/php[1-6]/','php5');
?>

Demo7.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 '電子郵件不合法';
 }
?>

Demo8.php

<?php
 //匹配全局正則
 //將字符串的所有匹配得到的結(jié)果放到一個數(shù)組變量里
 preg_match_all('/php[1-5]/','php5fsdfsdphp6fsdfsdfphp4',$out);
 print_r($out);//Array ( [0] => Array ( [0] => php5 [1] => php4 ) )
 echo $out[0][0];//php5
?>

Demo9.php

<?php
 //定界定則
 echo preg_quote('PHP is $150'); //PHP is \$150
?>

Demo10.php

<?php
 //搜索匹配的結(jié)果,然后替換掉
 //第一個參數(shù),存的是正則模式
 //第二參數(shù),放的是替換掉的字符串
 //第二個參數(shù),字符
 //將第三個參數(shù)的字符串的 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
?>

Demo11.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);
?>

Demo12.php

<?php
 //用正則表達來進行分割
 //如果沒有 [] 符號,就表示,要同時滿足
 print_r(preg_split('/[.@]/','oneStopWeb@163.com'));
 //Array ( [0] => oneStopWeb [1] => 163 [2] => com )
?>

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php正則表達式用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O計入門教程》、《PHP網(wǎng)絡編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • PHP獲取毫秒級時間戳的方法

    PHP獲取毫秒級時間戳的方法

    這篇文章主要介紹了PHP獲取毫秒級時間戳的方法,涉及php針對microtime函數(shù)返回結(jié)果的處理技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • PHP判斷兩個給定日期是否在同一周的方法

    PHP判斷兩個給定日期是否在同一周的方法

    這篇文章主要介紹了PHP判斷兩個給定日期是否在同一周的方法,涉及PHP針對日期時間的轉(zhuǎn)換、運算及判斷等相關操作技巧,需要的朋友可以參考下
    2017-08-08
  • PHP中iconv函數(shù)知識匯總

    PHP中iconv函數(shù)知識匯總

    iconv函數(shù)庫能夠完成各種字符集間的轉(zhuǎn)換,是php編程中不可缺少的基礎函數(shù)庫。本文內(nèi)容是參考了網(wǎng)上的其他資源,然后結(jié)合自己的實踐,有需要的小伙伴可以參考下。
    2015-07-07
  • PHP定時執(zhí)行計劃任務的多種方法小結(jié)

    PHP定時執(zhí)行計劃任務的多種方法小結(jié)

    PHP不支持多線程,有時候處理問題不是那么爽,今天談論一下PHP定時執(zhí)行的方法
    2011-12-12
  • PHP基于IMAP收取郵件的方法示例

    PHP基于IMAP收取郵件的方法示例

    這篇文章主要介紹了PHP基于IMAP收取郵件的方法,結(jié)合實例形式分析了PHP基于IMAP接收郵件的相關設置與使用技巧,并附帶了IMAP相關函數(shù)說明,需要的朋友可以參考下
    2017-08-08
  • PHP memcache擴展的三種安裝方法

    PHP memcache擴展的三種安裝方法

    PHP中pecl::memcache擴展的三種安裝方法 先提前說明一下還有一種是pecl::memcached,memcached會依賴于libmemcached,這種是比較新的
    2009-04-04
  • PHP腳本中include文件出錯解決方法

    PHP腳本中include文件出錯解決方法

    經(jīng)常當php頁面中利用include, require, require_once包含了一些其他位置的頁面時,會出現(xiàn)錯誤,比如沒有發(fā)現(xiàn)次頁面,或者權(quán)限不允許等,可以根據(jù)以下方法來排除
    2008-11-11
  • 詳解PHP中的外觀模式facade pattern

    詳解PHP中的外觀模式facade pattern

    這篇文章主要介紹了詳解PHP中的外觀模式facade pattern的詳細用法以及代碼實例,對此有需求的朋友參考下吧。
    2018-02-02
  • PHP遞歸算法的詳細示例分析

    PHP遞歸算法的詳細示例分析

    我們在建設一個網(wǎng)站的時候,程序員們首選的當屬PHP語言。我們對PHP還是比較熟悉的,接下來我們將會為大家介紹一下PHP遞歸算法
    2013-02-02
  • thinkphp5.1 框架鉤子和行為用法實例分析

    thinkphp5.1 框架鉤子和行為用法實例分析

    這篇文章主要介紹了thinkphp5.1 框架鉤子和行為用法,結(jié)合實例形式分析了thinkphp5.1 框架鉤子和行為基本功能、定義、用法及操作注意事項,需要的朋友可以參考下
    2020-05-05

最新評論