本文是根據慕課網Jason老師的課程進行的PHP面試知識點總結和昇華,若有侵權請聯繫我進行刪除,email:guoyugygy@163.com
在面試中,考官每每喜歡基礎紮實的面試者,而正則表達式相關的考點,每每是你們容易忽視的一個點,今天冷月就來幫各位小夥伴們梳理一下,在面試中正則表達式相關的注意點。php
至少寫出一種驗證139開頭的11位手機號碼的正則表達式
答案:
/^139d{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()編碼
後向引用:
在後面的表達式中,引用前面某個分組所匹配到的內容code
<?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"
若是這篇博文有幫助到您,能夠幫冷月點一個贊或者加一個關注哦!
歡迎關注個人公衆號:學長冷月,得到獨家整理的學習資源和平常乾貨推送。
若是您對個人專題內容感興趣,也能夠關注個人博客: guoyu7.com