php面試筆記(6)-php基礎知識-正則表達式考點

本文是根據慕課網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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章