本文是根據慕課網Jason老師的課程進行的PHP面試知識點總結和昇華,如有侵權請聯繫我進行刪除,email:[email protected]
在面試中,考官往往喜歡基礎紮實的面試者,而正則表達式相關的考點,往往是大家容易忽視的一個點,今天冷月就來幫各位小夥伴們梳理一下,在面試中正則表達式相關的注意點。
回顧真題
至少寫出一種驗證139開頭的11位手機號碼的正則表達式
答案:
/^139\d{8}$/
考點分析
很明顯,面試官主要想考察大家對於正則表達式組成及編寫方法的瞭解程度。繼而衍生出正則表達式的作用:
1.分割
分隔符(定界符),主要是正斜線(/),表示一個正則表達式的開始和結束
2.查找
通用原子
\d :十進制0-9
\D :除了十進制0-9
\w:數字、字母、下劃線
\W:除了數字、字母、下劃線
\s:空白符(換行、空格、回車)
\S:除了空白符(換行、空格、回車)
元字符
模式修正符
U:懶惰模式
u:貪婪模式
i:忽略英文字母大小寫
x:忽略空白
s:讓元字符“.”匹配包括換行符在內所有字符
e:配合函數 preg_replace() 使用,可以把匹配來的字符串當作正則表達式執行
3.匹配
preg_match() //匹配一個
preg_match_all()// 匹配所有
4.替換
preg_replace()
preg_filler()
後向引用:
在後面的表達式中,引用前面某個分組所匹配到的內容
<?php
/**
* Created by 冷月小白.
* 微信公衆號: 學長冷月
*/
$str = '<b>abc</b>';
$pattern = '/<b>(.*)<\/b>/'; //一定要用括號
$res = preg_replace($pattern,'\1',$str); //將第一個匹配到的數據放入數組
var_dump($res); //string(3) "abc"
貪婪模式
<?php
/**
* Created by 冷月小白.
* 微信公衆號: 學長冷月
*/
$str = '<b>abc</b><b>bcd</b>';
$pattern = '/<b>(.*?)<\/b>/u'; //貪婪模式
$res = preg_replace($pattern,'\1',$str); //將第一個匹配到的數據放入數組
var_dump($res); //string(3) "abc"
中文匹配
UTF-8漢字編碼範圍:
0x4e00-0x9fa5
一網打盡
請寫出一個正則表達式,取出頁面中所有的img標籤中的src值
答案:
<?php
/**
* Created by 冷月小白.
* 微信公衆號: 學長冷月
*/
$str = '<img alt="" id="" src="xxx.jpg" />';
$pattern = '/<img.*?src="(.*?)".*?\/?>/i';
preg_match($pattern,$str,$a);
var_dump($a);//string(7) "xxx.jpg"
相關閱讀
php面試筆記(1)-php基礎知識-變量和引用變量
php面試筆記(2)-php基礎知識-常量和數據類型
php面試筆記(3)-php基礎知識-運算符
php面試筆記(4)-php基礎知識-流程控制
php面試筆記(5)-php基礎知識-自定義函數及內部函數考點
php面試筆記(6)-php基礎知識-正則表達式考點
php面試筆記(7)-php基礎知識-文件及目錄處理考點
php面試筆記(9)-php基礎知識-面向對象考點
如果這篇博文有幫助到您,可以幫冷月點一個贊或者加一個關注哦!
歡迎關注我的公衆號:學長冷月,獲得獨家整理的學習資源和日常乾貨推送。
如果您對我的專題內容感興趣,也可以關注我的博客:guoyu7.com